MCPcopy
hub / github.com/Fosowl/agenticSeek / process_query

Function process_query

api.py:230–296  ·  view source on GitHub ↗
(request: QueryRequest)

Source from the content-addressed store, hash-verified

228
229@api.post("/query", response_model=QueryResponse)
230async def process_query(request: QueryRequest):
231 global is_generating, query_resp_history
232 logger.info(f"Processing query: {request.query}")
233 query_resp = QueryResponse(
234 done="false",
235 answer="",
236 reasoning="",
237 agent_name="Unknown",
238 success="false",
239 blocks={},
240 status="Ready",
241 uid=str(uuid.uuid4())
242 )
243 if is_generating:
244 logger.warning("Another query is being processed, please wait.")
245 return JSONResponse(status_code=429, content=query_resp.jsonify())
246
247 try:
248 is_generating = True
249 success = await think_wrapper(interaction, request.query)
250 is_generating = False
251
252 if not success:
253 query_resp.answer = interaction.last_answer
254 query_resp.reasoning = interaction.last_reasoning
255 return JSONResponse(status_code=400, content=query_resp.jsonify())
256
257 if interaction.current_agent:
258 blocks_json = {f'{i}': block.jsonify() for i, block in enumerate(interaction.current_agent.get_blocks_result())}
259 else:
260 logger.error("No current agent found")
261 blocks_json = {}
262 query_resp.answer = "Error: No current agent"
263 return JSONResponse(status_code=400, content=query_resp.jsonify())
264
265 logger.info(f"Answer: {interaction.last_answer}")
266 logger.info(f"Blocks: {blocks_json}")
267 query_resp.done = "true"
268 query_resp.answer = interaction.last_answer
269 query_resp.reasoning = interaction.last_reasoning
270 query_resp.agent_name = interaction.current_agent.agent_name
271 query_resp.success = str(interaction.last_success)
272 query_resp.blocks = blocks_json
273
274 query_resp_dict = {
275 "done": query_resp.done,
276 "answer": query_resp.answer,
277 "agent_name": query_resp.agent_name,
278 "success": query_resp.success,
279 "blocks": query_resp.blocks,
280 "status": query_resp.status,
281 "uid": query_resp.uid
282 }
283 query_resp_history.append(query_resp_dict)
284
285 logger.info("Query processed successfully")
286 return JSONResponse(status_code=200, content=query_resp.jsonify())
287 except Exception as e:

Callers

nothing calls this directly

Calls 9

jsonifyMethod · 0.95
QueryResponseClass · 0.90
think_wrapperFunction · 0.85
infoMethod · 0.80
warningMethod · 0.80
get_blocks_resultMethod · 0.80
errorMethod · 0.80
save_sessionMethod · 0.80
jsonifyMethod · 0.45

Tested by

no test coverage detected