OpenAI-Redis Conversation System

by Gaya56
MIT License

Integrations

  • Uses .env files to manage environment variables and credentials for API keys and configuration settings

  • Integrates with OpenAI's chat models to process and respond to user messages, with support for function calling via MCP tools

  • Utilizes Redis for persistent conversation storage and session management with configurable time-to-live functionality

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

  1. 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
  1. Install the requirements:
pip install -r requirements.txt
  1. Run the application:
python main.py
-
security - not tested
A
license - permissive license
-
quality - not tested

A persistent AI conversation system that uses OpenAI's API integrated with Upstash Redis for session storage, allowing users to maintain context across multiple conversations with support for tool integration via MCP architecture.

  1. Features
    1. Architecture
      1. Session Manager
        1. Features
        2. Usage Example
      2. Setup

        Related MCP Servers

        • A
          security
          F
          license
          A
          quality
          This server provides access to the Perplexity AI API, enabling interaction through chatting, searching, and documentation retrieval within MCP-based systems.
          Last updated -
          5
          2
          JavaScript
        • -
          security
          F
          license
          -
          quality
          Manages AI conversation context and personal knowledge bases through the Model Context Protocol (MCP), providing tools for user data, conversation content, and knowledge management.
          Last updated -
          1
          TypeScript
        • -
          security
          F
          license
          -
          quality
          A Model Context Protocol server that provides persistent task management capabilities for AI assistants, allowing them to create, update, and track tasks beyond their usual context limitations.
          Last updated -
          1
          TypeScript
        • -
          security
          A
          license
          -
          quality
          An MCP server that extends AI agents' context window by providing tools to store, retrieve, and search memories, allowing agents to maintain history and context across long interactions.
          Last updated -
          5
          TypeScript
          MIT License

        View all related MCP servers

        ID: zj6ammmwzq