Spaces:
Runtime error
Runtime error
Update kadi_apy_bot.py
Browse files- kadi_apy_bot.py +30 -23
kadi_apy_bot.py
CHANGED
|
@@ -15,25 +15,25 @@ class KadiAPYBot:
|
|
| 15 |
Process a user query, handle history, retrieve contexts, and generate a response.
|
| 16 |
"""
|
| 17 |
# Add the user query to the conversation history
|
| 18 |
-
|
| 19 |
|
| 20 |
# Rewrite query
|
| 21 |
-
|
| 22 |
|
| 23 |
# Predict library usage
|
| 24 |
-
|
| 25 |
|
| 26 |
# Retrieve contexts
|
| 27 |
-
|
| 28 |
-
|
| 29 |
|
| 30 |
|
| 31 |
# Vanilla
|
| 32 |
doc_contexts = self.retrieve_contexts(query, k=3, filter={"directory": "doc/"})
|
| 33 |
code_contexts = self.retrieve_contexts(query, k=5, filter={"directory": "kadi_apy/"})
|
| 34 |
|
| 35 |
-
|
| 36 |
-
|
| 37 |
|
| 38 |
|
| 39 |
# Format contexts
|
|
@@ -159,21 +159,28 @@ class KadiAPYBot:
|
|
| 159 |
"""
|
| 160 |
Generate a response using the retrieved contexts and the LLM.
|
| 161 |
"""
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
| 166 |
-
|
| 167 |
-
|
| 168 |
-
|
| 169 |
-
|
|
|
|
| 170 |
|
| 171 |
-
|
| 172 |
-
|
| 173 |
-
|
| 174 |
-
|
| 175 |
-
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 179 |
return self.llm.invoke(prompt).content
|
|
|
|
| 15 |
Process a user query, handle history, retrieve contexts, and generate a response.
|
| 16 |
"""
|
| 17 |
# Add the user query to the conversation history
|
| 18 |
+
self.add_to_conversation(user_query=query)
|
| 19 |
|
| 20 |
# Rewrite query
|
| 21 |
+
rewritten_query = self.rewrite_query(query)
|
| 22 |
|
| 23 |
# Predict library usage
|
| 24 |
+
code_library_usage_prediction = self.predict_library_usage(query)
|
| 25 |
|
| 26 |
# Retrieve contexts
|
| 27 |
+
doc_contexts = self.retrieve_contexts(query, k=3, filter={"usage": "doc"})
|
| 28 |
+
code_contexts = self.retrieve_contexts(rewritten_query, k=5, filter={"usage": code_library_usage_prediction})
|
| 29 |
|
| 30 |
|
| 31 |
# Vanilla
|
| 32 |
doc_contexts = self.retrieve_contexts(query, k=3, filter={"directory": "doc/"})
|
| 33 |
code_contexts = self.retrieve_contexts(query, k=5, filter={"directory": "kadi_apy/"})
|
| 34 |
|
| 35 |
+
doc_contexts = self.retrieve_contexts(query, k=3, filter={"folder": "doc/"})
|
| 36 |
+
code_contexts = self.retrieve_contexts(rewritten_query, k=5, filter={"folder": "kadi_apy/"})
|
| 37 |
|
| 38 |
|
| 39 |
# Format contexts
|
|
|
|
| 159 |
"""
|
| 160 |
Generate a response using the retrieved contexts and the LLM.
|
| 161 |
"""
|
| 162 |
+
|
| 163 |
+
|
| 164 |
+
prompt = f"""You are a Python programming assistant specialized in the "Kadi-APY" library.
|
| 165 |
+
The "Kadi-APY" library is a Python package designed to facilitate interaction with the REST-like API of a software platform called Kadi4Mat.
|
| 166 |
+
Your task is to generate Python scripts that address the user's query based on the guidelines and the combine understanding provided by
|
| 167 |
+
"Document snippets" with the implementation details provided by "Code Snippets."
|
| 168 |
+
|
| 169 |
+
Guidelines when generating code:
|
| 170 |
+
- Display the complete code first, followed by a concise explanation in no more than 5 sentences.
|
| 171 |
|
| 172 |
+
- If the user's query can not be fullfilled based on the provided snippets, reply with "The API does not support the requested functionality"
|
| 173 |
+
|
| 174 |
+
"Document Snippets": These contain documentation excerpts and code examples that explain how to use the "Kadi-APY" library
|
| 175 |
+
Document Snippets:
|
| 176 |
+
{doc_context}
|
| 177 |
+
|
| 178 |
+
|
| 179 |
+
"Code Snippets": These are raw source code fragments from the implementation of the "Kadi-APY" library.
|
| 180 |
+
Code Snippets:
|
| 181 |
+
{code_context}
|
| 182 |
+
|
| 183 |
+
Query:
|
| 184 |
+
{query}
|
| 185 |
+
"""
|
| 186 |
return self.llm.invoke(prompt).content
|