Skip to content

Commit d198915

Browse files
Merge pull request MervinPraison#526 from MervinPraison/claude/issue-394-20250528_143330
fix: Support OPENAI_BASE_URL and MODEL_NAME for Ollama integration
2 parents b2a0f5b + f86e9ef commit d198915

3 files changed

Lines changed: 61 additions & 4 deletions

File tree

docs/models/ollama.mdx

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,8 +10,41 @@ icon: "terminal"
1010

1111
<AccordionGroup>
1212
<Accordion title="Ollama Integration" defaultOpen>
13+
**Standard OpenAI SDK Environment Variables (Recommended):**
1314
```bash
1415
export OPENAI_BASE_URL=http://localhost:11434/v1
16+
export MODEL_NAME=deepseek-r1:14b
17+
export OPENAI_API_KEY=NA
18+
```
19+
20+
**Alternative Environment Variable Patterns:**
21+
```bash
22+
# Community recommended pattern
23+
export OLLAMA_API_BASE=http://localhost:11434
24+
export MODEL_NAME=gemma3:4b
25+
export OPENAI_API_KEY=fake-key
26+
27+
# Legacy pattern (still supported)
28+
export OPENAI_API_BASE=http://localhost:11434/v1
29+
export OPENAI_MODEL_NAME=llama2
30+
export OPENAI_API_KEY=not-needed
31+
```
32+
33+
**Usage with praisonai --init:**
34+
```bash
35+
# Make sure Ollama is running
36+
ollama serve
37+
38+
# Pull your desired model
39+
ollama pull deepseek-r1:14b
40+
41+
# Set environment variables
42+
export OPENAI_BASE_URL=http://localhost:11434/v1
43+
export MODEL_NAME=deepseek-r1:14b
44+
export OPENAI_API_KEY=NA
45+
46+
# Initialize agents
47+
praisonai --init "Create a story about AI"
1548
```
1649
</Accordion>
1750
</AccordionGroup>

src/praisonai/praisonai/auto.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -91,10 +91,22 @@ def __init__(self, topic="Movie Story writing about AI", agent_file="test.yaml",
9191
pip install "praisonai[{framework}]"
9292
""")
9393

94+
# Support multiple environment variable patterns for better compatibility
95+
# Priority order: MODEL_NAME > OPENAI_MODEL_NAME for model selection
96+
model_name = os.environ.get("MODEL_NAME") or os.environ.get("OPENAI_MODEL_NAME", "gpt-4o")
97+
98+
# Priority order for base_url: OPENAI_BASE_URL > OPENAI_API_BASE > OLLAMA_API_BASE
99+
# OPENAI_BASE_URL is the standard OpenAI SDK environment variable
100+
base_url = (
101+
os.environ.get("OPENAI_BASE_URL") or
102+
os.environ.get("OPENAI_API_BASE") or
103+
os.environ.get("OLLAMA_API_BASE", "https://api.openai.com/v1")
104+
)
105+
94106
self.config_list = config_list or [
95107
{
96-
'model': os.environ.get("OPENAI_MODEL_NAME", "gpt-4o"),
97-
'base_url': os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1"),
108+
'model': model_name,
109+
'base_url': base_url,
98110
'api_key': os.environ.get("OPENAI_API_KEY")
99111
}
100112
]

src/praisonai/praisonai/cli.py

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,23 @@ def __init__(self, agent_file="agents.yaml", framework="", auto=False, init=Fals
114114
"""
115115
self.agent_yaml = agent_yaml
116116
# Create config_list with AutoGen compatibility
117+
# Support multiple environment variable patterns for better compatibility
118+
# Priority order: MODEL_NAME > OPENAI_MODEL_NAME for model selection
119+
model_name = os.environ.get("MODEL_NAME") or os.environ.get("OPENAI_MODEL_NAME", "gpt-4o")
120+
121+
# Priority order for base_url: OPENAI_BASE_URL > OPENAI_API_BASE > OLLAMA_API_BASE
122+
# OPENAI_BASE_URL is the standard OpenAI SDK environment variable
123+
base_url = (
124+
os.environ.get("OPENAI_BASE_URL") or
125+
os.environ.get("OPENAI_API_BASE") or
126+
os.environ.get("OLLAMA_API_BASE", "https://api.openai.com/v1")
127+
)
128+
117129
api_key = os.environ.get("OPENAI_API_KEY")
118130
self.config_list = [
119131
{
120-
'model': os.environ.get("OPENAI_MODEL_NAME", "gpt-4o"),
121-
'base_url': os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1"),
132+
'model': model_name,
133+
'base_url': base_url,
122134
'api_key': api_key,
123135
'api_type': 'openai' # AutoGen expects this field
124136
}

0 commit comments

Comments
 (0)