Loading ai_agent/routes/debug.py +1 −0 Viewed Changes for ai_agent/routes/debug.py: 1 added line, 0 removed lines. Original line number Diff line number Diff line import io import sys import objgraph # type: ignore[import-untyped] from fastapi import APIRouter from fastapi.responses import PlainTextResponse Loading ai_agent/routes/groq.py +7 −3 Viewed Changes for ai_agent/routes/groq.py: 7 added lines, 3 removed lines. Original line number Diff line number Diff line import logging from typing import Annotated from fastapi import APIRouter, Body, Query from fastapi.responses import JSONResponse, StreamingResponse Loading @@ -6,12 +8,14 @@ from ai_agent.memory import RedisShortTermMemory from ai_agent.sub_agents.groq_agent import create_groq_agent from ai_agent.utils import stream_agent_response logger = logging.getLogger(__name__) router = APIRouter() memory_store = RedisShortTermMemory() @router.post("/groq-mcp") async def groq_query(payload: dict | None = Body(default=None)): async def groq_query(payload: Annotated[dict | None, Body()] = None): query = payload.get("query") if payload else None session_id = payload.get("session_id") if payload else None Loading @@ -28,7 +32,7 @@ async def groq_query(payload: dict | None = Body(default=None)): response["session_id"] = session_id return response except Exception as e: logging.error("Error in groq_query", exc_info=True) logger.exception("Error in groq_query") return JSONResponse(status_code=500, content={"error": str(e)}) finally: await agent.close() Loading Loading @@ -64,6 +68,6 @@ async def groq_stream( }, ) except Exception as e: logging.error("Error in groq_stream", exc_info=True) logger.exception("Error in groq_stream") await agent.close() return JSONResponse(status_code=500, content={"error": str(e)}) ai_agent/sub_agents/groq_agent.py +6 −4 Viewed Changes for ai_agent/sub_agents/groq_agent.py: 6 added lines, 4 removed lines. Original line number Diff line number Diff line import os import logging import os from dotenv import load_dotenv from ai_agent.prompts import CONVERSATION_MEMORY_PROMPT from langchain_groq import ChatGroq from mcp_use import MCPAgent, MCPClient # type: ignore[import-untyped] from ai_agent.prompts import CONVERSATION_MEMORY_PROMPT load_dotenv() logging.getLogger("mcp_use").setLevel(logging.ERROR) Loading @@ -14,7 +16,7 @@ logger = logging.getLogger(__name__) def require_env(name: str) -> str: value = os.getenv(name) if value is None or not value.strip(): raise EnvironmentError(f"{name} environment variable is not set") raise OSError(f"{name} environment variable is not set") return value.strip() Loading @@ -23,7 +25,7 @@ async def create_groq_agent(): try: mcp_server_url = require_env("MCP_SERVER_URL") groq_api_key = require_env("GROQ_API_KEY") except EnvironmentError as e: except OSError as e: logger.error("Groq agent configuration error: %s", e) raise Loading ai_agent/README.md +1 −1 Viewed Changes for ai_agent/README.md: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ MCP_SERVER_URL=http://127.0.0.1:8004/mcp # --- Groq --- GROQ_API_KEY=your_groq_api_key_here GROQ_MODEL_NAME=qwen/qwen3-32b GROQ_MODEL_NAME=qwen/qwen3.8-27b # --- Optional short-term memory (Redis) --- REDIS_URL=redis://127.0.0.1:6379/0 Loading ai_agent/app.py +4 −3 Viewed Changes for ai_agent/app.py: 4 added lines, 3 removed lines. Original line number Diff line number Diff line import os import logging from dotenv import load_dotenv import os import uvicorn from dotenv import load_dotenv from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from ai_agent.routes.groq import router as groq_router from ai_agent.routes.debug import router as debug_router from ai_agent.routes.groq import router as groq_router load_dotenv() Loading Loading
ai_agent/routes/debug.py +1 −0 Viewed Changes for ai_agent/routes/debug.py: 1 added line, 0 removed lines. Original line number Diff line number Diff line import io import sys import objgraph # type: ignore[import-untyped] from fastapi import APIRouter from fastapi.responses import PlainTextResponse Loading
ai_agent/routes/groq.py +7 −3 Viewed Changes for ai_agent/routes/groq.py: 7 added lines, 3 removed lines. Original line number Diff line number Diff line import logging from typing import Annotated from fastapi import APIRouter, Body, Query from fastapi.responses import JSONResponse, StreamingResponse Loading @@ -6,12 +8,14 @@ from ai_agent.memory import RedisShortTermMemory from ai_agent.sub_agents.groq_agent import create_groq_agent from ai_agent.utils import stream_agent_response logger = logging.getLogger(__name__) router = APIRouter() memory_store = RedisShortTermMemory() @router.post("/groq-mcp") async def groq_query(payload: dict | None = Body(default=None)): async def groq_query(payload: Annotated[dict | None, Body()] = None): query = payload.get("query") if payload else None session_id = payload.get("session_id") if payload else None Loading @@ -28,7 +32,7 @@ async def groq_query(payload: dict | None = Body(default=None)): response["session_id"] = session_id return response except Exception as e: logging.error("Error in groq_query", exc_info=True) logger.exception("Error in groq_query") return JSONResponse(status_code=500, content={"error": str(e)}) finally: await agent.close() Loading Loading @@ -64,6 +68,6 @@ async def groq_stream( }, ) except Exception as e: logging.error("Error in groq_stream", exc_info=True) logger.exception("Error in groq_stream") await agent.close() return JSONResponse(status_code=500, content={"error": str(e)})
ai_agent/sub_agents/groq_agent.py +6 −4 Viewed Changes for ai_agent/sub_agents/groq_agent.py: 6 added lines, 4 removed lines. Original line number Diff line number Diff line import os import logging import os from dotenv import load_dotenv from ai_agent.prompts import CONVERSATION_MEMORY_PROMPT from langchain_groq import ChatGroq from mcp_use import MCPAgent, MCPClient # type: ignore[import-untyped] from ai_agent.prompts import CONVERSATION_MEMORY_PROMPT load_dotenv() logging.getLogger("mcp_use").setLevel(logging.ERROR) Loading @@ -14,7 +16,7 @@ logger = logging.getLogger(__name__) def require_env(name: str) -> str: value = os.getenv(name) if value is None or not value.strip(): raise EnvironmentError(f"{name} environment variable is not set") raise OSError(f"{name} environment variable is not set") return value.strip() Loading @@ -23,7 +25,7 @@ async def create_groq_agent(): try: mcp_server_url = require_env("MCP_SERVER_URL") groq_api_key = require_env("GROQ_API_KEY") except EnvironmentError as e: except OSError as e: logger.error("Groq agent configuration error: %s", e) raise Loading
ai_agent/README.md +1 −1 Viewed Changes for ai_agent/README.md: 1 added line, 1 removed line. Original line number Diff line number Diff line Loading @@ -35,7 +35,7 @@ MCP_SERVER_URL=http://127.0.0.1:8004/mcp # --- Groq --- GROQ_API_KEY=your_groq_api_key_here GROQ_MODEL_NAME=qwen/qwen3-32b GROQ_MODEL_NAME=qwen/qwen3.8-27b # --- Optional short-term memory (Redis) --- REDIS_URL=redis://127.0.0.1:6379/0 Loading
ai_agent/app.py +4 −3 Viewed Changes for ai_agent/app.py: 4 added lines, 3 removed lines. Original line number Diff line number Diff line import os import logging from dotenv import load_dotenv import os import uvicorn from dotenv import load_dotenv from fastapi import FastAPI from fastapi.middleware.cors import CORSMiddleware from ai_agent.routes.groq import router as groq_router from ai_agent.routes.debug import router as debug_router from ai_agent.routes.groq import router as groq_router load_dotenv() Loading