Spaces:
Sleeping
Sleeping
Update query.py
Browse files
query.py
CHANGED
@@ -48,19 +48,7 @@ class VectaraQuery():
|
|
48 |
'sentences_after': 2,
|
49 |
'start_tag': "%START_SNIPPET%",
|
50 |
'end_tag': "%END_SNIPPET%",
|
51 |
-
}
|
52 |
-
'summary': [
|
53 |
-
{
|
54 |
-
'responseLang': 'eng',
|
55 |
-
'maxSummarizedResults': 1,
|
56 |
-
'summarizerPromptName': self.prompt_name,
|
57 |
-
'promptText': prompt,
|
58 |
-
'chat': {
|
59 |
-
'store': True,
|
60 |
-
'conversationId': self.conv_id
|
61 |
-
},
|
62 |
-
}
|
63 |
-
]
|
64 |
}
|
65 |
]
|
66 |
}
|
@@ -106,60 +94,51 @@ class VectaraQuery():
|
|
106 |
continue
|
107 |
text = result['text']
|
108 |
print(f"Processing text: {text}") # Debugging line
|
109 |
-
accumulated_text += text
|
110 |
|
111 |
if accumulated_text:
|
112 |
-
return self.
|
113 |
|
114 |
return "No relevant information found."
|
115 |
|
116 |
-
def
|
117 |
endpoint = f"https://api.vectara.io/v1/stream-summary"
|
118 |
-
prompt = f'''
|
119 |
-
[
|
120 |
-
{{
|
121 |
-
"role": "system",
|
122 |
-
"content": "You are an assistant that provides information about drink names based on a given corpus. \
|
123 |
-
Format the response in the following way:\n\
|
124 |
-
Reason: <reason why the name cannot be used>\n\
|
125 |
-
Alternative: <alternative name>\n\
|
126 |
-
Notes: <additional notes>\n\n\
|
127 |
-
Example:\n\
|
128 |
-
Reason: The name 'Vodka Sunrise' cannot be used because it is trademarked.\n\
|
129 |
-
Alternative: Use 'Morning Delight' instead.\n\
|
130 |
-
Notes: Ensure the drink contains vodka to match the alternative name."
|
131 |
-
}},
|
132 |
-
{{
|
133 |
-
"role": "user",
|
134 |
-
"content": "{text}"
|
135 |
-
}}
|
136 |
-
]
|
137 |
-
'''
|
138 |
body = {
|
139 |
'text': text,
|
140 |
'summary': {
|
141 |
'responseLang': 'eng',
|
142 |
'maxSummarizedResults': 1,
|
143 |
'summarizerPromptName': self.prompt_name,
|
144 |
-
'promptText':
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
149 |
}
|
150 |
}
|
151 |
-
|
|
|
152 |
if response.status_code != 200:
|
153 |
print(f"Summary query failed with code {response.status_code}, reason {response.reason}, text {response.text}")
|
154 |
return "Sorry, something went wrong. Please try again later."
|
155 |
|
156 |
-
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
if 'summary' in data:
|
162 |
-
return data['summary']['text']
|
163 |
-
|
164 |
return "No relevant information found."
|
165 |
-
|
|
|
48 |
'sentences_after': 2,
|
49 |
'start_tag': "%START_SNIPPET%",
|
50 |
'end_tag': "%END_SNIPPET%",
|
51 |
+
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
52 |
}
|
53 |
]
|
54 |
}
|
|
|
94 |
continue
|
95 |
text = result['text']
|
96 |
print(f"Processing text: {text}") # Debugging line
|
97 |
+
accumulated_text += text + " "
|
98 |
|
99 |
if accumulated_text:
|
100 |
+
return self.format_response_using_vectara(accumulated_text)
|
101 |
|
102 |
return "No relevant information found."
|
103 |
|
104 |
+
def format_response_using_vectara(self, text):
|
105 |
endpoint = f"https://api.vectara.io/v1/stream-summary"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
106 |
body = {
|
107 |
'text': text,
|
108 |
'summary': {
|
109 |
'responseLang': 'eng',
|
110 |
'maxSummarizedResults': 1,
|
111 |
'summarizerPromptName': self.prompt_name,
|
112 |
+
'promptText': f'''
|
113 |
+
[
|
114 |
+
{{
|
115 |
+
"role": "system",
|
116 |
+
"content": "You are an assistant that provides information about drink names based on a given corpus. \
|
117 |
+
Format the response in the following way:\n\
|
118 |
+
Reason: <reason why the name cannot be used>\n\
|
119 |
+
Alternative: <alternative name>\n\
|
120 |
+
Notes: <additional notes>\n\n\
|
121 |
+
Example:\n\
|
122 |
+
Reason: The name 'Vodka Sunrise' cannot be used because it is trademarked.\n\
|
123 |
+
Alternative: Use 'Morning Delight' instead.\n\
|
124 |
+
Notes: Ensure the drink contains vodka to match the alternative name."
|
125 |
+
}},
|
126 |
+
{{
|
127 |
+
"role": "user",
|
128 |
+
"content": "{text}"
|
129 |
+
}}
|
130 |
+
]
|
131 |
+
'''
|
132 |
}
|
133 |
}
|
134 |
+
headers = self.get_headers()
|
135 |
+
response = requests.post(endpoint, data=json.dumps(body), headers=headers)
|
136 |
if response.status_code != 200:
|
137 |
print(f"Summary query failed with code {response.status_code}, reason {response.reason}, text {response.text}")
|
138 |
return "Sorry, something went wrong. Please try again later."
|
139 |
|
140 |
+
data = response.json()
|
141 |
+
if 'summary' in data:
|
142 |
+
return data['summary']['text']
|
143 |
+
|
|
|
|
|
|
|
|
|
144 |
return "No relevant information found."
|
|