This reverts commitabeadc49c8. Restores vendor/litellm-pgvector/ and the vector_store_registry wiring (in-band file_search tool-call support) at the user's request, after re-confirming against docs.litellm.ai/docs/completion/knowledgebase and litellm-pgvector's own README that pg_vector is still not an in-process vector_store_registry backend -- it requires this same standalone connector service either way, so there is no simpler 'native' path that was missed. Trading back in: 793 lines of vendored code, the untested Prisma migration, and the git-context build risk noted in VENDORED.md (all flagged as unverified against real hardware in issue #24), in exchange for the file_search in-band tool call memory-retrieval did not support. Conflicts resolved on top of later commits (Redis, update.sh key-minting fold-in): - .env.example / docs/memory-knowledgebase.md: kept the auto-mint-via- update.sh language, renamed MEMORY_RETRIEVAL_* back to LITELLM_PGVECTOR_*. - scripts/generate-secrets.sh: left deleted -- its job was folded into update.sh in24d749b, unrelated to this revert. - scripts/update.sh: renamed the MEMORY_RETRIEVAL_* secret/mint calls to LITELLM_PGVECTOR_* to match. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_018WHfjWrSEcGhCoeu6dQfDa
60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
from typing import Dict, Optional
|
|
from pydantic import BaseModel
|
|
from pydantic_settings import BaseSettings
|
|
|
|
|
|
class DatabaseFieldConfig(BaseModel):
|
|
"""Configuration for database field mappings"""
|
|
id_field: str = "id"
|
|
content_field: str = "content"
|
|
metadata_field: str = "metadata"
|
|
embedding_field: str = "embedding"
|
|
vector_store_id_field: str = "vector_store_id"
|
|
created_at_field: str = "created_at"
|
|
|
|
|
|
class EmbeddingConfig(BaseModel):
|
|
"""Configuration for embedding generation via LiteLLM proxy"""
|
|
model: str = "text-embedding-ada-002"
|
|
base_url: str = "http://localhost:4000" # LiteLLM proxy URL
|
|
api_key: str = "sk-1234" # LiteLLM proxy API key
|
|
dimensions: int = 1536
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
"""Application settings"""
|
|
# Database configuration
|
|
database_url: str = "postgresql://username:password@localhost:5432/vectordb?schema=public"
|
|
|
|
# API configuration
|
|
server_api_key: str = "your-api-key-here"
|
|
port: int = 8000
|
|
host: str = "0.0.0.0"
|
|
|
|
# Database field mappings
|
|
db_fields: DatabaseFieldConfig = DatabaseFieldConfig()
|
|
|
|
# Embedding configuration
|
|
embedding: EmbeddingConfig = EmbeddingConfig()
|
|
|
|
class Config:
|
|
env_file = ".env"
|
|
env_nested_delimiter = "__"
|
|
case_sensitive = False
|
|
|
|
# Allow environment variables like:
|
|
# DB_FIELDS__ID_FIELD=custom_id
|
|
# EMBEDDING__MODEL=text-embedding-3-small
|
|
# EMBEDDING__API_BASE=https://api.openai.com/v1
|
|
|
|
@property
|
|
def table_names(self) -> Dict[str, str]:
|
|
"""Get table names"""
|
|
return {
|
|
"vector_stores": "vector_stores",
|
|
"embeddings": "embeddings"
|
|
}
|
|
|
|
|
|
# Global settings instance
|
|
settings = Settings() |