added reranker

This commit is contained in:
Pratik Narola 2025-10-21 14:25:51 +05:30
parent fb332c5346
commit e7b839810b
5 changed files with 30 additions and 48 deletions

View file

@ -3,6 +3,7 @@ OPENAI_API_KEY=sk-your-openai-api-key-here
OPENAI_COMPAT_API_KEY=sk-your-openai-compatible-api-key-here
OPENAI_BASE_URL=https://your-openai-compatible-endpoint.com/v1
EMBEDDER_API_KEY=AIzaSy-your-google-gemini-api-key-here
COHERE_API_KEY=your-cohere-api-key-here
# Database Configuration
QDRANT_HOST=qdrant

View file

@ -12,7 +12,8 @@ class Settings(BaseSettings):
# API Configuration
openai_api_key: str = Field(..., env="OPENAI_COMPAT_API_KEY")
openai_base_url: str = Field(..., env="OPENAI_COMPAT_BASE_URL")
embedder_api_key: str = Field(..., env="EMBEDDER_API_KEY")
cohere_api_key: str = Field(..., env="COHERE_API_KEY")
# ollama_base_url: str = Field(..., env="OLLAMA_BASE_URL")

View file

@ -2,6 +2,7 @@
import logging
from typing import Dict, List, Optional, Any
from datetime import datetime
from mem0 import Memory
from openai import OpenAI
@ -19,6 +20,7 @@ class Mem0Manager:
def __init__(self):
# Custom endpoint configuration with graph memory enabled
logger.info("Initializing ultra-minimal Mem0Manager with custom endpoint with settings:", settings)
config = {
"enable_graph": True,
"llm": {
@ -56,6 +58,14 @@ class Mem0Manager:
"password": settings.neo4j_password
}
},
"reranker": {
"provider": "cohere",
"config": {
"api_key": settings.cohere_api_key,
"model": "rerank-english-v3.0",
"top_n": 10
}
}
}
self.memory = Memory.from_config(config)
@ -87,11 +97,24 @@ class Mem0Manager:
else:
formatted_messages.append(msg)
# Direct Mem0 add with metadata support
# Auto-enhance metadata for better memory quality
combined_metadata = metadata or {}
# Add automatic metadata enhancement
auto_metadata = {
"timestamp": datetime.now().isoformat(),
"source": "chat_conversation",
"message_count": len(formatted_messages),
"auto_generated": True
}
# Merge user metadata with auto metadata (user metadata takes precedence)
enhanced_metadata = {**auto_metadata, **combined_metadata}
# Direct Mem0 add with enhanced metadata
result = self.memory.add(formatted_messages, user_id=user_id,
agent_id=agent_id, run_id=run_id,
metadata=combined_metadata if combined_metadata else None)
metadata=enhanced_metadata)
return {
"added_memories": result if isinstance(result, list) else [result],

View file

@ -53,6 +53,7 @@ services:
environment:
OPENAI_API_KEY: ${OPENAI_COMPAT_API_KEY}
OPENAI_BASE_URL: ${OPENAI_COMPAT_BASE_URL}
COHERE_API_KEY: ${COHERE_API_KEY}
EMBEDDER_API_KEY: ${EMBEDDER_API_KEY:-AIzaSyA_}
QDRANT_HOST: qdrant
QDRANT_PORT: 6333

View file

@ -1,44 +0,0 @@
{
"name": "mem0-interface-frontend",
"version": "1.0.0",
"description": "React frontend for Mem0 Interface POC",
"main": "src/index.js",
"scripts": {
"start": "react-scripts start",
"build": "react-scripts build",
"test": "react-scripts test",
"eject": "react-scripts eject"
},
"dependencies": {
"react": "^18.2.0",
"react-dom": "^18.2.0",
"react-scripts": "5.0.1",
"axios": "^1.6.0",
"react-router-dom": "^6.8.0",
"@mui/material": "^5.14.0",
"@mui/icons-material": "^5.14.0",
"@emotion/react": "^11.11.0",
"@emotion/styled": "^11.11.0",
"recharts": "^2.8.0",
"react-json-view": "^1.21.3"
},
"eslintConfig": {
"extends": [
"react-app",
"react-app/jest"
]
},
"browserslist": {
"production": [
">0.2%",
"not dead",
"not op_mini all"
],
"development": [
"last 1 chrome version",
"last 1 firefox version",
"last 1 safari version"
]
},
"proxy": "http://localhost:8000"
}