set the embedding model in an environment variable

This commit is contained in:
Aniket1995 2025-02-26 10:24:20 +05:30
parent a1ac6f0429
commit 990662b94f
4 changed files with 11 additions and 4 deletions

View File

@ -30,4 +30,8 @@ REASONER_MODEL=
# The LLM you want to use for the primary agent/coder.
# Example: gpt-4o-mini
PRIMARY_MODEL=
PRIMARY_MODEL=
# Embedding model you want to use (nomic-embed-text:latest, text-embedding-3-small)
# Example: nomic-embed-text:latest
EMBEDDING_MODEL=

View File

@ -22,6 +22,8 @@ base_url = os.getenv('BASE_URL', 'https://api.openai.com/v1')
api_key = os.getenv('LLM_API_KEY', 'no-llm-api-key-provided')
is_ollama = "localhost" in base_url.lower()
embedding_model = os.getenv('EMBEDDING_MODEL', 'text-embedding-3-small')
openai_client=None
if is_ollama:
@ -115,7 +117,7 @@ async def get_embedding(text: str) -> List[float]:
"""Get embedding vector from OpenAI."""
try:
response = await openai_client.embeddings.create(
model= "nomic-embed-text:latest" if is_ollama else "text-embedding-3-small",
model= embedding_model,
input=text
)
return response.data[0].embedding

View File

@ -10,7 +10,7 @@ create table site_pages (
summary varchar not null,
content text not null, -- Added content column
metadata jsonb not null default '{}'::jsonb, -- Added metadata column
embedding vector(768), -- OpenAI embeddings are 1536 dimensions
embedding vector(768), -- Ollama nomic-embed-text embeddings are 768 dimensions
created_at timestamp with time zone default timezone('utc'::text, now()) not null,
-- Add a unique constraint to prevent duplicate chunks for the same URL

View File

@ -19,6 +19,7 @@ llm = os.getenv('PRIMARY_MODEL', 'gpt-4o-mini')
base_url = os.getenv('BASE_URL', 'https://api.openai.com/v1')
api_key = os.getenv('LLM_API_KEY', 'no-llm-api-key-provided')
model = OpenAIModel(llm, base_url=base_url, api_key=api_key)
embedding_model = os.getenv('EMBEDDING_MODEL', 'text-embedding-3-small')
logfire.configure(send_to_logfire='if-token-present')
@ -90,7 +91,7 @@ async def get_embedding(text: str, openai_client: AsyncOpenAI) -> List[float]:
"""Get embedding vector from OpenAI."""
try:
response = await openai_client.embeddings.create(
model= "nomic-embed-text:latest" if is_ollama else "text-embedding-3-small",
model= embedding_model,
input=text
)
return response.data[0].embedding