Skip to content

Commit 886ba8f

Browse files
authored
Merge pull request #607 from balaboom123/main
add Grok API option
2 parents d5d9333 + ffb3be6 commit 886ba8f

File tree

3 files changed

+27
-1
lines changed

3 files changed

+27
-1
lines changed

.env.example

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,13 @@ IBM_ENDPOINT=https://us-south.ml.cloud.ibm.com
3434
IBM_API_KEY=
3535
IBM_PROJECT_ID=
3636

37+
GROK_ENDPOINT="https://api.x.ai/v1"
38+
GROK_API_KEY=
39+
3740
#set default LLM
3841
DEFAULT_LLM=openai
3942

43+
4044
# Set to false to disable anonymized telemetry
4145
ANONYMIZED_TELEMETRY=false
4246

src/utils/config.py

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@
77
"alibaba": "Alibaba",
88
"moonshot": "MoonShot",
99
"unbound": "Unbound AI",
10-
"ibm": "IBM"
10+
"ibm": "IBM",
11+
"grok": "Grok",
1112
}
1213

1314
# Predefined model names for common providers
@@ -25,6 +26,15 @@
2526
"alibaba": ["qwen-plus", "qwen-max", "qwen-vl-max", "qwen-vl-plus", "qwen-turbo", "qwen-long"],
2627
"moonshot": ["moonshot-v1-32k-vision-preview", "moonshot-v1-8k-vision-preview"],
2728
"unbound": ["gemini-2.0-flash", "gpt-4o-mini", "gpt-4o", "gpt-4.5-preview"],
29+
"grok": [
30+
"grok-3",
31+
"grok-3-fast",
32+
"grok-3-mini",
33+
"grok-3-mini-fast",
34+
"grok-2-vision",
35+
"grok-2-image",
36+
"grok-2",
37+
],
2838
"siliconflow": [
2939
"deepseek-ai/DeepSeek-R1",
3040
"deepseek-ai/DeepSeek-V3",

src/utils/llm_provider.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,18 @@ def get_llm_model(provider: str, **kwargs):
205205
base_url=base_url,
206206
api_key=api_key,
207207
)
208+
elif provider == "grok":
209+
if not kwargs.get("base_url", ""):
210+
base_url = os.getenv("GROK_ENDPOINT", "https://api.x.ai/v1")
211+
else:
212+
base_url = kwargs.get("base_url")
213+
214+
return ChatOpenAI(
215+
model=kwargs.get("model_name", "grok-3"),
216+
temperature=kwargs.get("temperature", 0.0),
217+
base_url=base_url,
218+
api_key=api_key,
219+
)
208220
elif provider == "deepseek":
209221
if not kwargs.get("base_url", ""):
210222
base_url = os.getenv("DEEPSEEK_ENDPOINT", "")

0 commit comments

Comments
 (0)