MCPcopy Create free account
hub / github.com/KnowledgeXLab/LeanRAG / generate_text_asy

Method generate_text_asy

tools/utils.py:223–267  ·  view source on GitHub ↗

发送请求到选择的实例

(self, prompt,system_prompt=None, history_messages=[], **kwargs)

Source from the content-addressed store, hash-verified

221
222 return response_message
223 async def generate_text_asy(self, prompt,system_prompt=None, history_messages=[], **kwargs):
224 """发送请求到选择的实例"""
225 port = self.get_available_instance()
226 base_url = f"{self.base_url}:{port}/v1"
227 messages = []
228 if system_prompt:
229 messages.append({"role": "system", "content": system_prompt})
230
231 # Get the cached response if having-------------------
232
233 if len(history_messages)>1:
234 history_messages[0]['content'] = truncate_text(history_messages[0]['content'], max_tokens=3000)
235 history_messages[1]['content'] = truncate_text(history_messages[1]['content'], max_tokens=25000)
236 messages.extend(history_messages)
237 messages.append({"role": "user", "content": prompt})
238 try:
239 cur_token_cost = len(tokenizer.encode(messages[0]['content']))
240 if cur_token_cost>31000:
241 cur_token_cost = 31000
242 messages[0]['content'] = truncate_text(messages[0]['content'], max_tokens=31000)
243
244 # logging api call cost
245 self.TOTAL_API_CALL_COST += 1
246 response = requests.post(
247 f"{base_url}/chat/completions",
248 json={
249 "model": self.generate_model,
250 "messages": messages,
251 **kwargs,
252 "chat_template_kwargs": {"enable_thinking": False}
253 },
254 timeout=240
255 )
256 response.raise_for_status()
257 res=json.loads(response.content)
258 self.TOTAL_TOKEN_COST += res["usage"]["prompt_tokens"]
259 response_message = res["choices"][0]["message"]['content']#对结果进行后处理
260 except Exception as e:
261 print(f"Retry for Error: {e}")
262 response = ""
263 response_message=""
264
265
266
267 return response_message
268

Callers

nothing calls this directly

Calls 2

truncate_textFunction · 0.70

Tested by

no test coverage detected