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_COMPAT_API_KEY=sk-your-openai-compatible-api-key-here
OPENAI_BASE_URL=https://your-openai-compatible-endpoint.com/v1 OPENAI_BASE_URL=https://your-openai-compatible-endpoint.com/v1
EMBEDDER_API_KEY=AIzaSy-your-google-gemini-api-key-here EMBEDDER_API_KEY=AIzaSy-your-google-gemini-api-key-here
COHERE_API_KEY=your-cohere-api-key-here
# Database Configuration # Database Configuration
QDRANT_HOST=qdrant QDRANT_HOST=qdrant

View file

@ -12,7 +12,8 @@ class Settings(BaseSettings):
# API Configuration # API Configuration
openai_api_key: str = Field(..., env="OPENAI_COMPAT_API_KEY") openai_api_key: str = Field(..., env="OPENAI_COMPAT_API_KEY")
openai_base_url: str = Field(..., env="OPENAI_COMPAT_BASE_URL") 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") # ollama_base_url: str = Field(..., env="OLLAMA_BASE_URL")

View file

@ -2,6 +2,7 @@
import logging import logging
from typing import Dict, List, Optional, Any from typing import Dict, List, Optional, Any
from datetime import datetime
from mem0 import Memory from mem0 import Memory
from openai import OpenAI from openai import OpenAI
@ -19,6 +20,7 @@ class Mem0Manager:
def __init__(self): def __init__(self):
# Custom endpoint configuration with graph memory enabled # Custom endpoint configuration with graph memory enabled
logger.info("Initializing ultra-minimal Mem0Manager with custom endpoint with settings:", settings)
config = { config = {
"enable_graph": True, "enable_graph": True,
"llm": { "llm": {
@ -56,6 +58,14 @@ class Mem0Manager:
"password": settings.neo4j_password "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) self.memory = Memory.from_config(config)
@ -87,11 +97,24 @@ class Mem0Manager:
else: else:
formatted_messages.append(msg) formatted_messages.append(msg)
# Direct Mem0 add with metadata support # Auto-enhance metadata for better memory quality
combined_metadata = metadata or {} 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, result = self.memory.add(formatted_messages, user_id=user_id,
agent_id=agent_id, run_id=run_id, agent_id=agent_id, run_id=run_id,
metadata=combined_metadata if combined_metadata else None) metadata=enhanced_metadata)
return { return {
"added_memories": result if isinstance(result, list) else [result], "added_memories": result if isinstance(result, list) else [result],

View file

@ -53,6 +53,7 @@ services:
environment: environment:
OPENAI_API_KEY: ${OPENAI_COMPAT_API_KEY} OPENAI_API_KEY: ${OPENAI_COMPAT_API_KEY}
OPENAI_BASE_URL: ${OPENAI_COMPAT_BASE_URL} OPENAI_BASE_URL: ${OPENAI_COMPAT_BASE_URL}
COHERE_API_KEY: ${COHERE_API_KEY}
EMBEDDER_API_KEY: ${EMBEDDER_API_KEY:-AIzaSyA_} EMBEDDER_API_KEY: ${EMBEDDER_API_KEY:-AIzaSyA_}
QDRANT_HOST: qdrant QDRANT_HOST: qdrant
QDRANT_PORT: 6333 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"
}