AI Session MCP
A conversational AI system integrating OpenAI's API with Upstash Redis for session storage, utilizing a Machine Conversation Protocol (MCP) architecture.
Features
- Session Management: Persistent conversation storage with Redis
- Session TTL: Configurable time-to-live for sessions
- Conversation History: Track and manage message history
- OpenAI Integration: Seamless integration with OpenAI's chat models
- Tool Execution: Support for OpenAI function calling via MCP tools
Architecture
The system consists of these main components:
- SessionManager: Handles conversation storage in Redis
- OpenAIClient: Manages API requests to OpenAI
- ConversationController: Processes user messages and manages conversation flow
- MCPToolManager: Handles tool registration and execution
Session Manager
The SessionManager
class provides methods for storing, retrieving, and managing conversation sessions in Upstash Redis.
Features
- Create sessions with unique IDs
- List all available sessions
- Get session details and conversation history
- Add messages to existing sessions
- Session expiration with TTL
Usage Example
from app.session_manager import SessionManager
# Initialize session manager
session_manager = SessionManager(
redis_url="your_upstash_redis_url",
redis_token="your_upstash_redis_token",
ttl_days=30 # sessions expire after 30 days
)
# Create a new session
session = session_manager.create_session("My Conversation")
session_id = session["id"]
# Add messages
session_manager.add_message(session_id, "user", "Hello, AI!")
session_manager.add_message(session_id, "assistant", "Hello! How can I help you today?")
# Get session details
session = session_manager.get_session(session_id)
print(f"Session has {len(session['messages'])} messages")
# List all sessions
sessions = session_manager.list_sessions()
for s in sessions:
print(f"- {s['name']} (created at: {s['created_at']})")
Setup
- Create a
.env
file in the project root with your credentials:
UPSTASH_REDIS_URL=your_upstash_redis_url
UPSTASH_REDIS_TOKEN=your_upstash_redis_token
OPENAI_API_KEY=your_openai_api_key
OPENAI_MODEL=gpt-4o
SESSION_TTL_DAYS=30
- Install the requirements:
pip install -r requirements.txt
- Run the application: