Skip to content

Commit eab5398

Browse files
committed
Make base endpoint configurable
1 parent b40f765 commit eab5398

7 files changed

Lines changed: 19 additions & 5 deletions

File tree

deploy/docker/docker-compose.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ services:
177177
- CHATBOT_EMBEDDINGS_MODEL=${CHATBOT_EMBEDDINGS_MODEL:-}
178178
- CHATBOT_EMBEDDINGS_DIMENSIONS=${CHATBOT_EMBEDDINGS_DIMENSIONS:-1536}
179179
- CHATBOT_OPENAI_API_KEY=${CHATBOT_OPENAI_API_KEY:-}
180+
- CHATBOT_OPENAI_BASE_URL=${CHATBOT_OPENAI_BASE_URL:-}
180181
- ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY:-}
181182
- AZURE_OPENAI_API_KEY=${AZURE_OPENAI_API_KEY:-}
182183
- AZURE_AD_TOKEN=${AZURE_AD_TOKEN:-}

deploy/helm/templates/chatbot/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ data:
2121
MONGO_DB_PASSWORD: {{ .Values.mongodb.config.mongoPassword }}
2222
MONGO_DB_NAME: {{ .Values.mongodb.config.mongoDbName }}
2323
CHATBOT_OPENAI_API_KEY: {{ .Values.chatbotOpenaiApiKey | default .Values.openAIApiKey | quote }}
24+
CHATBOT_OPENAI_BASE_URL: {{ .Values.chatbotOpenaiBaseUrl | quote }}
2425
CHATBOT_LLM_PROVIDER: {{ .Values.chatbotLlmProvider | quote }}
2526
CHATBOT_LLM_MODEL: {{ .Values.chatbotLlmModel | quote }}
2627
CHATBOT_EMBEDDINGS_MODEL: {{ .Values.chatbotEmbeddingsModel | quote }}

deploy/helm/values.yaml

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,9 @@ chatbotEmbeddingsDimensions: 1536
2323
chatbotOpenaiApiKey: ""
2424
openAIApiKey: "" # for backward compatibility
2525

26+
# OpenAI Base URL (for DeepSeek or other OpenAI-compatible APIs)
27+
chatbotOpenaiBaseUrl: ""
28+
2629
# Anthropic API Key
2730
anthropicApiKey: ""
2831

deploy/k8s/base/chatbot/config.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ data:
2020
MONGO_DB_PASSWORD: "crapisecretpassword"
2121
MONGO_DB_NAME: "crapi"
2222
CHATBOT_OPENAI_API_KEY: ""
23+
CHATBOT_OPENAI_BASE_URL: ""
2324
CHATBOT_LLM_PROVIDER: "openai"
2425
CHATBOT_LLM_MODEL: ""
2526
CHATBOT_EMBEDDINGS_MODEL: ""

services/chatbot/src/chatbot/config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class Config:
1515
EMBEDDINGS_MODEL = os.getenv("CHATBOT_EMBEDDINGS_MODEL", "")
1616
EMBEDDINGS_DIMENSIONS = int(os.getenv("CHATBOT_EMBEDDINGS_DIMENSIONS", "1536"))
1717
OPENAI_API_KEY = os.getenv("CHATBOT_OPENAI_API_KEY")
18+
OPENAI_BASE_URL = os.getenv("CHATBOT_OPENAI_BASE_URL")
1819
ANTHROPIC_API_KEY = os.getenv("ANTHROPIC_API_KEY")
1920
GROQ_API_KEY = os.getenv("GROQ_API_KEY")
2021
MISTRAL_API_KEY = os.getenv("MISTRAL_API_KEY")

services/chatbot/src/chatbot/langgraph_agent.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,11 @@ def _build_llm(api_key, model_name):
4040
model_name = model_name or _get_default_model(provider)
4141
logger.info("Using LLM provider: %s, model: %s", provider, model_name)
4242
if provider == "openai":
43-
return ChatOpenAI(api_key=api_key, model=model_name)
43+
kwargs = {"api_key": api_key, "model": model_name}
44+
if Config.OPENAI_BASE_URL:
45+
kwargs["base_url"] = Config.OPENAI_BASE_URL
46+
logger.info("Using custom OpenAI base URL: %s", Config.OPENAI_BASE_URL)
47+
return ChatOpenAI(**kwargs)
4448
if provider == "azure_openai":
4549
kwargs = {
4650
"azure_endpoint": Config.AZURE_OPENAI_ENDPOINT,

services/chatbot/src/chatbot/retriever_utils.py

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -69,11 +69,14 @@ def get_embedding_function(api_key, provider: str, llm_model: str | None):
6969
if not api_key:
7070
logger.warning("OpenAI embeddings requested without API key.")
7171
return _zero_embeddings()
72-
return OpenAIEmbeddings(
73-
openai_api_key=api_key,
74-
model=Config.EMBEDDINGS_MODEL
72+
kwargs = {
73+
"openai_api_key": api_key,
74+
"model": Config.EMBEDDINGS_MODEL
7575
or _default_embeddings_model(embeddings_provider, llm_model),
76-
)
76+
}
77+
if Config.OPENAI_BASE_URL:
78+
kwargs["base_url"] = Config.OPENAI_BASE_URL
79+
return OpenAIEmbeddings(**kwargs)
7780
if embeddings_provider == "azure_openai":
7881
if (not Config.AZURE_OPENAI_API_KEY and not Config.AZURE_AD_TOKEN) or not Config.AZURE_OPENAI_ENDPOINT:
7982
logger.warning("Azure OpenAI embeddings misconfigured.")

0 commit comments

Comments
 (0)