From 5c1569e29c677b5b72f77282827cd490beaab429 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 24 Jun 2024 21:50:10 +0000 Subject: [PATCH 1/3] Workaround for older model --- src/fastapi_app/query_rewriter.py | 7 ++++--- src/fastapi_app/rag_advanced.py | 2 +- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/fastapi_app/query_rewriter.py b/src/fastapi_app/query_rewriter.py index 9cf4fffe..3306e0ed 100644 --- a/src/fastapi_app/query_rewriter.py +++ b/src/fastapi_app/query_rewriter.py @@ -18,7 +18,7 @@ def build_search_function() -> list[ChatCompletionToolParam]: "properties": { "search_query": { "type": "string", - "description": "Query string to use for full text search, e.g. 'red shoes'", + "description": "Query string to use for full text search, e.g. 'red shoes'. This required parameter must always be specified.", }, "price_filter": { "type": "object", @@ -56,7 +56,7 @@ def build_search_function() -> list[ChatCompletionToolParam]: ] -def extract_search_arguments(chat_completion: ChatCompletion): +def extract_search_arguments(original_user_query: str, chat_completion: ChatCompletion): response_message = chat_completion.choices[0].message search_query = None filters = [] @@ -67,7 +67,8 @@ def extract_search_arguments(chat_completion: ChatCompletion): function = tool.function if function.name == "search_database": arg = json.loads(function.arguments) - search_query = arg.get("search_query") + # Even though its required, search_query is not always specified + search_query = arg.get("search_query", original_user_query) if "price_filter" in arg and arg["price_filter"]: price_filter = arg["price_filter"] filters.append( diff --git a/src/fastapi_app/rag_advanced.py b/src/fastapi_app/rag_advanced.py index 00e96bfd..d603d997 100644 --- a/src/fastapi_app/rag_advanced.py +++ b/src/fastapi_app/rag_advanced.py @@ -65,7 +65,7 @@ async def run( tool_choice="auto", ) - query_text, filters = extract_search_arguments(chat_completion) + query_text, filters = extract_search_arguments(original_user_query, chat_completion) # Retrieve relevant items from the database with the GPT optimized query results = await self.searcher.search_and_embed( From c9f0a64ba01667cbd9d2cda9e9c6b0a333ce2ab8 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 24 Jun 2024 21:54:09 +0000 Subject: [PATCH 2/3] Remove prompt eng that didnt work --- src/fastapi_app/query_rewriter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fastapi_app/query_rewriter.py b/src/fastapi_app/query_rewriter.py index 3306e0ed..415a031e 100644 --- a/src/fastapi_app/query_rewriter.py +++ b/src/fastapi_app/query_rewriter.py @@ -18,7 +18,7 @@ def build_search_function() -> list[ChatCompletionToolParam]: "properties": { "search_query": { "type": "string", - "description": "Query string to use for full text search, e.g. 'red shoes'. This required parameter must always be specified.", + "description": "Query string to use for full text search, e.g. 'red shoes'.", }, "price_filter": { "type": "object", From c4db7c5cef3f712702fe4520ddbc136f74a34b57 Mon Sep 17 00:00:00 2001 From: Pamela Fox Date: Mon, 24 Jun 2024 22:01:41 +0000 Subject: [PATCH 3/3] Remove prompt eng that didnt work --- src/fastapi_app/query_rewriter.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/fastapi_app/query_rewriter.py b/src/fastapi_app/query_rewriter.py index 415a031e..6274ca50 100644 --- a/src/fastapi_app/query_rewriter.py +++ b/src/fastapi_app/query_rewriter.py @@ -18,7 +18,7 @@ def build_search_function() -> list[ChatCompletionToolParam]: "properties": { "search_query": { "type": "string", - "description": "Query string to use for full text search, e.g. 'red shoes'.", + "description": "Query string to use for full text search, e.g. 'red shoes'", }, "price_filter": { "type": "object",