Spaces:
Sleeping
Sleeping
Some fixes in lang, field size and search
Browse files
app.py
CHANGED
@@ -146,6 +146,7 @@ Reranker = CrossEncoder("mixedbread-ai/mxbai-rerank-large-v1", activation_fn=nn.
|
|
146 |
|
147 |
class rfTranslatedText(BaseModel):
|
148 |
text: str = Field(description='Translated text')
|
|
|
149 |
|
150 |
class rfGenericText(BaseModel):
|
151 |
text: str = Field(description='The text result')
|
@@ -197,7 +198,7 @@ def ChatFunc(message, history):
|
|
197 |
m = BotMessage(msg);
|
198 |
return ChatBotOutput();
|
199 |
|
200 |
-
m = BotMessage("",metadata={"title":"
|
201 |
|
202 |
|
203 |
def OnConnError(err):
|
@@ -208,26 +209,29 @@ def ChatFunc(message, history):
|
|
208 |
# Responder algo sobre o historico!
|
209 |
if IsNewSearch:
|
210 |
|
211 |
-
yield m("
|
212 |
|
213 |
-
|
214 |
LLMResult = ai("""
|
215 |
Translate the user's message to English.
|
216 |
The message is a question related to a SQL Server T-SQL script that the user is searching for.
|
217 |
-
You
|
|
|
|
|
|
|
218 |
""",message, rfTranslatedText)
|
219 |
Question = LLMResult.message.parsed.text;
|
|
|
220 |
|
221 |
-
yield m(f"
|
222 |
|
223 |
-
yield m("
|
224 |
try:
|
225 |
-
FoundScripts = search(
|
226 |
except:
|
227 |
yield m("Houve alguma falha ao executar a consulta no banco. Tente novamente. Se persistir, veja orientações na aba Help!")
|
228 |
return;
|
229 |
|
230 |
-
yield m("
|
231 |
doclist = [doc['ScriptContent'] for doc in FoundScripts]
|
232 |
|
233 |
# Faz o reranker!
|
@@ -253,20 +257,21 @@ def ChatFunc(message, history):
|
|
253 |
|
254 |
|
255 |
CurrentTable = pd.DataFrame(ScriptTable)
|
256 |
-
yield m("
|
257 |
|
258 |
|
259 |
-
WaitMessage = ai("""
|
260 |
You will analyze some T-SQL scripts in order to check which is best for the user.
|
261 |
You found scripts, presented them to the user, and now will do some work that takes time.
|
262 |
Generate a message to tell the user to wait while you work, in the same language as the user.
|
263 |
You will receive the question the user sent that triggered this process.
|
264 |
Use the user’s original question to customize the message.
|
|
|
265 |
""",message,rfGenericText).message.parsed.text
|
266 |
|
267 |
yield Reply(WaitMessage);
|
268 |
|
269 |
-
yield m(f"
|
270 |
|
271 |
|
272 |
ResultJson = json.dumps(RankedScripts);
|
@@ -290,7 +295,6 @@ def ChatFunc(message, history):
|
|
290 |
Re-rank the results if necessary, presenting them from the most to the least relevant.
|
291 |
You may filter out scripts that appear unrelated to the user query.
|
292 |
|
293 |
-
Respond in the user's original language.
|
294 |
---
|
295 |
### Output Rules
|
296 |
|
@@ -298,7 +302,8 @@ def ChatFunc(message, history):
|
|
298 |
- Summarize each script, ordering from the most relevant to the least relevant.
|
299 |
- Write personalized and informative review text for each recommendation.
|
300 |
- If applicable, explain how the user should run the script, including parameters or sections (like `WHERE` clauses) they might need to customize.
|
301 |
-
- When referencing a script, include the link provided in the JSON — all scripts are hosted on GitHub
|
|
|
302 |
"""
|
303 |
|
304 |
ScriptPrompt = [
|
@@ -328,7 +333,7 @@ with gr.Blocks(fill_height=True) as demo:
|
|
328 |
with gr.Column():
|
329 |
|
330 |
with gr.Tab("Chat", scale = 1):
|
331 |
-
ChatTextBox = gr.Textbox(max_length =
|
332 |
|
333 |
gr.ChatInterface(
|
334 |
ChatFunc
|
|
|
146 |
|
147 |
class rfTranslatedText(BaseModel):
|
148 |
text: str = Field(description='Translated text')
|
149 |
+
lang: str = Field(description='source language')
|
150 |
|
151 |
class rfGenericText(BaseModel):
|
152 |
text: str = Field(description='The text result')
|
|
|
198 |
m = BotMessage(msg);
|
199 |
return ChatBotOutput();
|
200 |
|
201 |
+
m = BotMessage("",metadata={"title":"Searching scripts...","status":"pending"});
|
202 |
|
203 |
|
204 |
def OnConnError(err):
|
|
|
209 |
# Responder algo sobre o historico!
|
210 |
if IsNewSearch:
|
211 |
|
212 |
+
yield m("Enhancing the prompt...")
|
213 |
|
|
|
214 |
LLMResult = ai("""
|
215 |
Translate the user's message to English.
|
216 |
The message is a question related to a SQL Server T-SQL script that the user is searching for.
|
217 |
+
You must do following actions:
|
218 |
+
- Identify the language of user text, using BCP 47 code (example: pt-BR, en-US, ja-JP, etc.)
|
219 |
+
- Generate translated user text to english
|
220 |
+
Return both source language and translated text.
|
221 |
""",message, rfTranslatedText)
|
222 |
Question = LLMResult.message.parsed.text;
|
223 |
+
SourceLang = LLMResult.message.parsed.lang;
|
224 |
|
225 |
+
yield m(f"Lang:{SourceLang}, English Prompt: {Question}")
|
226 |
|
227 |
+
yield m("searching...")
|
228 |
try:
|
229 |
+
FoundScripts = search(Question, onConnectionError = OnConnError)
|
230 |
except:
|
231 |
yield m("Houve alguma falha ao executar a consulta no banco. Tente novamente. Se persistir, veja orientações na aba Help!")
|
232 |
return;
|
233 |
|
234 |
+
yield m("Doing rerank");
|
235 |
doclist = [doc['ScriptContent'] for doc in FoundScripts]
|
236 |
|
237 |
# Faz o reranker!
|
|
|
257 |
|
258 |
|
259 |
CurrentTable = pd.DataFrame(ScriptTable)
|
260 |
+
yield m("Found scripts, check Rank tab for details!")
|
261 |
|
262 |
|
263 |
+
WaitMessage = ai(f"""
|
264 |
You will analyze some T-SQL scripts in order to check which is best for the user.
|
265 |
You found scripts, presented them to the user, and now will do some work that takes time.
|
266 |
Generate a message to tell the user to wait while you work, in the same language as the user.
|
267 |
You will receive the question the user sent that triggered this process.
|
268 |
Use the user’s original question to customize the message.
|
269 |
+
Answer in lang: {SourceLang}
|
270 |
""",message,rfGenericText).message.parsed.text
|
271 |
|
272 |
yield Reply(WaitMessage);
|
273 |
|
274 |
+
yield m(f"Analyzing scripts...")
|
275 |
|
276 |
|
277 |
ResultJson = json.dumps(RankedScripts);
|
|
|
295 |
Re-rank the results if necessary, presenting them from the most to the least relevant.
|
296 |
You may filter out scripts that appear unrelated to the user query.
|
297 |
|
|
|
298 |
---
|
299 |
### Output Rules
|
300 |
|
|
|
302 |
- Summarize each script, ordering from the most relevant to the least relevant.
|
303 |
- Write personalized and informative review text for each recommendation.
|
304 |
- If applicable, explain how the user should run the script, including parameters or sections (like `WHERE` clauses) they might need to customize.
|
305 |
+
- When referencing a script, include the link provided in the JSON — all scripts are hosted on GitHub
|
306 |
+
- YOU MUST ANSWER THAT LANGUAGE: {SourceLang}
|
307 |
"""
|
308 |
|
309 |
ScriptPrompt = [
|
|
|
333 |
with gr.Column():
|
334 |
|
335 |
with gr.Tab("Chat", scale = 1):
|
336 |
+
ChatTextBox = gr.Textbox(max_length = 500, info = "Which script are you looking for?", submit_btn = True);
|
337 |
|
338 |
gr.ChatInterface(
|
339 |
ChatFunc
|