malek-messaoudii commited on
Commit
dd55f1d
·
1 Parent(s): b36d7d0

Update MCP tool calls to use asynchronous handling for improved performance and responsiveness

Browse files
Files changed (1) hide show
  1. routes/mcp_routes.py +8 -8
routes/mcp_routes.py CHANGED
@@ -190,7 +190,7 @@ async def list_mcp_tools():
190
  async def call_mcp_tool(request: ToolCallRequest):
191
  """Appelle un outil MCP par son nom avec des arguments"""
192
  try:
193
- result = mcp_server.call_tool(request.tool_name, request.arguments)
194
  # Gérer différents types de retours
195
  if isinstance(result, dict):
196
  final_result = result
@@ -227,8 +227,8 @@ async def call_mcp_tool(request: ToolCallRequest):
227
  async def mcp_detect_stance(request: DetectStanceRequest) -> Dict[str, Any]:
228
  """Détecte si un argument est PRO ou CON pour un topic donné"""
229
  try:
230
- # Appeler directement via call_tool
231
- result = mcp_server.call_tool("detect_stance", {
232
  "topic": request.topic,
233
  "argument": request.argument
234
  })
@@ -250,7 +250,7 @@ async def mcp_detect_stance(request: DetectStanceRequest) -> Dict[str, Any]:
250
  async def mcp_match_keypoint(request: MatchKeypointRequest) -> Dict[str, Any]:
251
  """Détermine si un argument correspond à un keypoint"""
252
  try:
253
- result = mcp_server.call_tool("match_keypoint_argument", {
254
  "argument": request.argument,
255
  "key_point": request.key_point
256
  })
@@ -271,7 +271,7 @@ async def mcp_match_keypoint(request: MatchKeypointRequest) -> Dict[str, Any]:
271
  async def mcp_transcribe_audio(request: TranscribeAudioRequest) -> Dict[str, str]:
272
  """Convertit un fichier audio en texte"""
273
  try:
274
- result = mcp_server.call_tool("transcribe_audio", {
275
  "audio_path": request.audio_path
276
  })
277
  # Gérer différents types de retours
@@ -290,7 +290,7 @@ async def mcp_transcribe_audio(request: TranscribeAudioRequest) -> Dict[str, str
290
  async def mcp_generate_speech(request: GenerateSpeechRequest) -> Dict[str, str]:
291
  """Convertit du texte en fichier audio"""
292
  try:
293
- result = mcp_server.call_tool("generate_speech", {
294
  "text": request.text,
295
  "voice": request.voice,
296
  "format": request.format
@@ -311,7 +311,7 @@ async def mcp_generate_speech(request: GenerateSpeechRequest) -> Dict[str, str]:
311
  async def mcp_generate_argument(request: GenerateArgumentRequest) -> Dict[str, str]:
312
  """Génère un argument de débat à partir d'un input utilisateur"""
313
  try:
314
- result = mcp_server.call_tool("generate_argument", {
315
  "user_input": request.user_input,
316
  "conversation_id": request.conversation_id
317
  })
@@ -331,7 +331,7 @@ async def mcp_generate_argument(request: GenerateArgumentRequest) -> Dict[str, s
331
  async def mcp_tool_health_check() -> Dict[str, Any]:
332
  """Health check via l'outil MCP"""
333
  try:
334
- result = mcp_server.call_tool("health_check", {})
335
  # Gérer différents types de retours
336
  if isinstance(result, dict):
337
  return result
 
190
  async def call_mcp_tool(request: ToolCallRequest):
191
  """Appelle un outil MCP par son nom avec des arguments"""
192
  try:
193
+ result = await mcp_server.call_tool(request.tool_name, request.arguments)
194
  # Gérer différents types de retours
195
  if isinstance(result, dict):
196
  final_result = result
 
227
  async def mcp_detect_stance(request: DetectStanceRequest) -> Dict[str, Any]:
228
  """Détecte si un argument est PRO ou CON pour un topic donné"""
229
  try:
230
+ # Appeler directement via call_tool (async)
231
+ result = await mcp_server.call_tool("detect_stance", {
232
  "topic": request.topic,
233
  "argument": request.argument
234
  })
 
250
  async def mcp_match_keypoint(request: MatchKeypointRequest) -> Dict[str, Any]:
251
  """Détermine si un argument correspond à un keypoint"""
252
  try:
253
+ result = await mcp_server.call_tool("match_keypoint_argument", {
254
  "argument": request.argument,
255
  "key_point": request.key_point
256
  })
 
271
  async def mcp_transcribe_audio(request: TranscribeAudioRequest) -> Dict[str, str]:
272
  """Convertit un fichier audio en texte"""
273
  try:
274
+ result = await mcp_server.call_tool("transcribe_audio", {
275
  "audio_path": request.audio_path
276
  })
277
  # Gérer différents types de retours
 
290
  async def mcp_generate_speech(request: GenerateSpeechRequest) -> Dict[str, str]:
291
  """Convertit du texte en fichier audio"""
292
  try:
293
+ result = await mcp_server.call_tool("generate_speech", {
294
  "text": request.text,
295
  "voice": request.voice,
296
  "format": request.format
 
311
  async def mcp_generate_argument(request: GenerateArgumentRequest) -> Dict[str, str]:
312
  """Génère un argument de débat à partir d'un input utilisateur"""
313
  try:
314
+ result = await mcp_server.call_tool("generate_argument", {
315
  "user_input": request.user_input,
316
  "conversation_id": request.conversation_id
317
  })
 
331
  async def mcp_tool_health_check() -> Dict[str, Any]:
332
  """Health check via l'outil MCP"""
333
  try:
334
+ result = await mcp_server.call_tool("health_check", {})
335
  # Gérer différents types de retours
336
  if isinstance(result, dict):
337
  return result