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- 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
|