added reranker
This commit is contained in:
parent
fb332c5346
commit
e7b839810b
5 changed files with 30 additions and 48 deletions
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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")
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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],
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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"
|
|
||||||
}
|
|
||||||
Loading…
Reference in a new issue