Functions.Templates/Templates-v2/OpenAI-RAG-Python/blueprint_body.py (29 lines of code) (raw):

# Add searchProvider to host.json. # For samples code refer: https://github.com/Azure/azure-functions-openai-extension/tree/main/samples/rag-aisearch @$(BLUEPRINT_FILENAME).route(route="injest_file", methods=["POST"], auth_level=func.AuthLevel.$(AUTHLEVEL_INPUT)) @$(BLUEPRINT_FILENAME).embeddings_store_output(arg_name="requests", input="{url}", input_type="url", connection_name="$(CONNECTION_STRING_INPUT)", collection="$(COLLECTION_NAME)", model="$(EMBEDDING_MODEL_NAME)") def ingest_file(req: func.HttpRequest, requests: func.Out[str]) -> func.HttpResponse: import json import os user_message = req.get_json() if not user_message: return func.HttpResponse(json.dumps({"message": "No message provided"}), status_code=400, mimetype="application/json") file_name_with_extension = os.path.basename(user_message["Url"]) title = os.path.splitext(file_name_with_extension)[0] create_request = { "title": title } requests.set(json.dumps(create_request)) response_json = { "status": "success", "title": title } return func.HttpResponse(json.dumps(response_json), status_code=200, mimetype="application/json") @$(BLUEPRINT_FILENAME).route(route="prompt_file", methods=["POST"], auth_level=func.AuthLevel.$(AUTHLEVEL_INPUT)) @$(BLUEPRINT_FILENAME).semantic_search_input(arg_name="result", connection_name="$(CONNECTION_STRING_INPUT)", collection="$(COLLECTION_NAME)", query="{Prompt}", embeddings_model="$(EMBEDDING_MODEL_NAME)", chat_model="$(CHAT_MODEL_NAME)") def prompt_file(req: func.HttpRequest, result: str) -> func.HttpResponse: import json result_json = json.loads(result) response_json = { "content": result_json.get("Response"), "content_type": "text/plain" } return func.HttpResponse(json.dumps(response_json), status_code=200, mimetype="application/json")