Skip to main content
Glama

Model Context Protocol Server

sessions.py2.69 kB
# Dosya: api/v1/endpoints/sessions.py from fastapi import APIRouter, HTTPException, Request from schemas import session_schema from services import redis_service, openai_service # main.py'da oluşturduğumuz limiter objesini import ediyoruz. from core.ratelimiter import limiter router = APIRouter() @router.post("/sessions", response_model=session_schema.SessionResponse) def create_session(): session_id = redis_service.create_new_session() return session_schema.SessionResponse(session_id=session_id) @router.delete("/sessions/{session_id}", status_code=204) def remove_session(session_id: str): deleted_count = redis_service.delete_session(session_id) if deleted_count == 0: raise HTTPException(status_code=404, detail="Session not found") return # --- DEĞİŞİKLİKLER BAŞLANGIÇ: /chat ENDPOINT IMPLEMENTASYONU --- @router.post("/sessions/{session_id}/chat", response_model=session_schema.AIResponse) @limiter.limit("10/minute") # Her IP adresi bu endpoint'e dakikada en fazla 10 istek atabilir. def chat_with_ai(request: Request, session_id: str, user_message: session_schema.UserMessage): # Önbellekleme için bir anahtar oluşturuyoruz. (Soruya özel) cache_key = f"cache:{user_message.message.lower().strip()}" cached_response = redis_service.get_cache(cache_key) if cached_response: # Eğer yanıt önbellekte varsa, OpenAI'ya gitmeden direkt onu dönüyoruz. print(f"CACHE HIT: Soru '{user_message.message}' için önbellekten yanıt dönüldü.") return session_schema.AIResponse(response=cached_response) print(f"CACHE MISS: Soru '{user_message.message}' için OpenAI'ya gidiliyor.") # Oturum geçmişini al history = redis_service.get_session_history(session_id) if history is None: raise HTTPException(status_code=404, detail="Session not found") # Kullanıcının mesajını geçmişe ekle redis_service.add_message_to_history(session_id, "user", user_message.message) updated_history = redis_service.get_session_history(session_id) # OpenAI servisinden yanıtı al ai_response_content = openai_service.get_ai_response(updated_history) if ai_response_content is None: raise HTTPException(status_code=503, detail="AI service is currently unavailable") # AI'nın yanıtını da geçmişe ekle redis_service.add_message_to_history(session_id, "assistant", ai_response_content) # Yeni yanıtı gelecekteki kullanımlar için önbelleğe al redis_service.set_cache(cache_key, ai_response_content) return session_schema.AIResponse(response=ai_response_content) # --- DEĞİŞİKLİKLER SON ---

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/BilgisayarKavramlari/MCP-Server'

If you have feedback or need assistance with the MCP directory API, please join our Discord server