Skip to content

Commit 7a7d2ee

Browse files
committed
models temp removed, deepseek reasoner support
1 parent 97b5e64 commit 7a7d2ee

File tree

6 files changed

+39
-159
lines changed

6 files changed

+39
-159
lines changed

README.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414

1515
</div>
1616

17+
[![Browser Agent](/docs/res/081_vid.png)](https://youtu.be/quv145buW74)
18+
1719
> [!NOTE]
1820
> **🎉 v0.8.1 Release**: Now featuring a browser agent capable of using Chromium for web interactions! This enables Agent Zero to browse the web, gather information, and interact with web content autonomously.
1921

docs/res/081_vid.png

463 KB
Loading

initialize.py

Lines changed: 4 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,7 @@ def initialize():
1616
limit_requests=current_settings["chat_model_rl_requests"],
1717
limit_input=current_settings["chat_model_rl_input"],
1818
limit_output=current_settings["chat_model_rl_output"],
19-
kwargs={
20-
"temperature": current_settings["chat_model_temperature"],
21-
**current_settings["chat_model_kwargs"],
22-
},
19+
kwargs=current_settings["chat_model_kwargs"],
2320
)
2421

2522
# utility model from user settings
@@ -30,29 +27,21 @@ def initialize():
3027
limit_requests=current_settings["util_model_rl_requests"],
3128
limit_input=current_settings["util_model_rl_input"],
3229
limit_output=current_settings["util_model_rl_output"],
33-
kwargs={
34-
"temperature": current_settings["util_model_temperature"],
35-
**current_settings["util_model_kwargs"],
36-
},
30+
kwargs=current_settings["util_model_kwargs"],
3731
)
3832
# embedding model from user settings
3933
embedding_llm = ModelConfig(
4034
provider=models.ModelProvider[current_settings["embed_model_provider"]],
4135
name=current_settings["embed_model_name"],
4236
limit_requests=current_settings["embed_model_rl_requests"],
43-
kwargs={
44-
**current_settings["embed_model_kwargs"],
45-
},
37+
kwargs=current_settings["embed_model_kwargs"],
4638
)
4739
# browser model from user settings
4840
browser_llm = ModelConfig(
4941
provider=models.ModelProvider[current_settings["browser_model_provider"]],
5042
name=current_settings["browser_model_name"],
5143
vision=current_settings["browser_model_vision"],
52-
kwargs={
53-
"temperature": current_settings["browser_model_temperature"],
54-
**current_settings["browser_model_kwargs"],
55-
},
44+
kwargs=current_settings["browser_model_kwargs"],
5645
)
5746
# agent configuration
5847
config = AgentConfig(

models.py

Lines changed: 25 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
embeddings as google_embeddings,
2727
)
2828
from langchain_mistralai import ChatMistralAI
29+
2930
# from pydantic.v1.types import SecretStr
3031
from python.helpers import dotenv, runtime
3132
from python.helpers.dotenv import load_dotenv
@@ -34,9 +35,6 @@
3435
# environment variables
3536
load_dotenv()
3637

37-
# Configuration
38-
DEFAULT_TEMPERATURE = 0.0
39-
4038

4139
class ModelType(Enum):
4240
CHAT = "Chat"
@@ -110,7 +108,6 @@ def get_ollama_base_url():
110108

111109
def get_ollama_chat(
112110
model_name: str,
113-
temperature=DEFAULT_TEMPERATURE,
114111
base_url=None,
115112
num_ctx=8192,
116113
**kwargs,
@@ -119,7 +116,6 @@ def get_ollama_chat(
119116
base_url = get_ollama_base_url()
120117
return ChatOllama(
121118
model=model_name,
122-
temperature=temperature,
123119
base_url=base_url,
124120
num_ctx=num_ctx,
125121
**kwargs,
@@ -128,22 +124,21 @@ def get_ollama_chat(
128124

129125
def get_ollama_embedding(
130126
model_name: str,
131-
temperature=DEFAULT_TEMPERATURE,
132127
base_url=None,
128+
num_ctx=8192,
133129
**kwargs,
134130
):
135131
if not base_url:
136132
base_url = get_ollama_base_url()
137133
return OllamaEmbeddings(
138-
model=model_name, temperature=temperature, base_url=base_url, **kwargs
134+
model=model_name, base_url=base_url, num_ctx=num_ctx, **kwargs
139135
)
140136

141137

142138
# HuggingFace models
143139
def get_huggingface_chat(
144140
model_name: str,
145141
api_key=None,
146-
temperature=DEFAULT_TEMPERATURE,
147142
**kwargs,
148143
):
149144
# different naming convention here
@@ -155,7 +150,6 @@ def get_huggingface_chat(
155150
repo_id=model_name,
156151
task="text-generation",
157152
do_sample=True,
158-
temperature=temperature,
159153
**kwargs,
160154
)
161155

@@ -177,13 +171,12 @@ def get_lmstudio_base_url():
177171

178172
def get_lmstudio_chat(
179173
model_name: str,
180-
temperature=DEFAULT_TEMPERATURE,
181174
base_url=None,
182175
**kwargs,
183176
):
184177
if not base_url:
185178
base_url = get_lmstudio_base_url()
186-
return ChatOpenAI(model_name=model_name, base_url=base_url, temperature=temperature, api_key="none", **kwargs) # type: ignore
179+
return ChatOpenAI(model_name=model_name, base_url=base_url, api_key="none", **kwargs) # type: ignore
187180

188181

189182
def get_lmstudio_embedding(
@@ -200,12 +193,16 @@ def get_lmstudio_embedding(
200193
def get_anthropic_chat(
201194
model_name: str,
202195
api_key=None,
203-
temperature=DEFAULT_TEMPERATURE,
196+
base_url=None,
204197
**kwargs,
205198
):
206199
if not api_key:
207200
api_key = get_api_key("anthropic")
208-
return ChatAnthropic(model_name=model_name, temperature=temperature, api_key=api_key, **kwargs) # type: ignore
201+
if not base_url:
202+
base_url = (
203+
dotenv.get_dotenv_value("ANTHROPIC_BASE_URL") or "https://api.anthropic.com"
204+
)
205+
return ChatAnthropic(model_name=model_name, api_key=api_key, base_url=base_url, **kwargs) # type: ignore
209206

210207

211208
# right now anthropic does not have embedding models, but that might change
@@ -223,12 +220,11 @@ def get_anthropic_embedding(
223220
def get_openai_chat(
224221
model_name: str,
225222
api_key=None,
226-
temperature=DEFAULT_TEMPERATURE,
227223
**kwargs,
228224
):
229225
if not api_key:
230226
api_key = get_api_key("openai")
231-
return ChatOpenAI(model_name=model_name, temperature=temperature, api_key=api_key, **kwargs) # type: ignore
227+
return ChatOpenAI(model_name=model_name, api_key=api_key, **kwargs) # type: ignore
232228

233229

234230
def get_openai_embedding(model_name: str, api_key=None, **kwargs):
@@ -240,15 +236,14 @@ def get_openai_embedding(model_name: str, api_key=None, **kwargs):
240236
def get_openai_azure_chat(
241237
deployment_name: str,
242238
api_key=None,
243-
temperature=DEFAULT_TEMPERATURE,
244239
azure_endpoint=None,
245240
**kwargs,
246241
):
247242
if not api_key:
248243
api_key = get_api_key("openai_azure")
249244
if not azure_endpoint:
250245
azure_endpoint = dotenv.get_dotenv_value("OPENAI_AZURE_ENDPOINT")
251-
return AzureChatOpenAI(deployment_name=deployment_name, temperature=temperature, api_key=api_key, azure_endpoint=azure_endpoint, **kwargs) # type: ignore
246+
return AzureChatOpenAI(deployment_name=deployment_name, api_key=api_key, azure_endpoint=azure_endpoint, **kwargs) # type: ignore
252247

253248

254249
def get_openai_azure_embedding(
@@ -268,12 +263,11 @@ def get_openai_azure_embedding(
268263
def get_google_chat(
269264
model_name: str,
270265
api_key=None,
271-
temperature=DEFAULT_TEMPERATURE,
272266
**kwargs,
273267
):
274268
if not api_key:
275269
api_key = get_api_key("google")
276-
return GoogleGenerativeAI(model=model_name, temperature=temperature, google_api_key=api_key, safety_settings={HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE}, **kwargs) # type: ignore
270+
return GoogleGenerativeAI(model=model_name, google_api_key=api_key, safety_settings={HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE}, **kwargs) # type: ignore
277271

278272

279273
def get_google_embedding(
@@ -290,49 +284,48 @@ def get_google_embedding(
290284
def get_mistralai_chat(
291285
model_name: str,
292286
api_key=None,
293-
temperature=DEFAULT_TEMPERATURE,
294287
**kwargs,
295288
):
296289
if not api_key:
297290
api_key = get_api_key("mistral")
298-
return ChatMistralAI(model=model_name, temperature=temperature, api_key=api_key, **kwargs) # type: ignore
291+
return ChatMistralAI(model=model_name, api_key=api_key, **kwargs) # type: ignore
299292

300293

301294
# Groq models
302295
def get_groq_chat(
303296
model_name: str,
304297
api_key=None,
305-
temperature=DEFAULT_TEMPERATURE,
306298
**kwargs,
307299
):
308300
if not api_key:
309301
api_key = get_api_key("groq")
310-
return ChatGroq(model_name=model_name, temperature=temperature, api_key=api_key, **kwargs) # type: ignore
302+
return ChatGroq(model_name=model_name, api_key=api_key, **kwargs) # type: ignore
311303

312304

313305
# DeepSeek models
314306
def get_deepseek_chat(
315307
model_name: str,
316308
api_key=None,
317-
temperature=DEFAULT_TEMPERATURE,
318309
base_url=None,
319310
**kwargs,
320311
):
321312
if not api_key:
322313
api_key = get_api_key("deepseek")
323314
if not base_url:
324315
base_url = (
325-
dotenv.get_dotenv_value("DEEPSEEK_BASE_URL")
326-
or "https://api.deepseek.com"
316+
dotenv.get_dotenv_value("DEEPSEEK_BASE_URL") or "https://api.deepseek.com"
327317
)
328-
return ChatOpenAI(api_key=api_key, model=model_name, temperature=temperature, base_url=base_url, **kwargs) # type: ignore
329-
318+
319+
model = ChatOpenAI(api_key=api_key, model=model_name, base_url=base_url, **kwargs) # type: ignore
320+
# little hack for reasoning model's problem with temperature
321+
if not "temperature" in kwargs:
322+
model.temperature = None # type: ignore
323+
return model
330324

331325
# OpenRouter models
332326
def get_openrouter_chat(
333327
model_name: str,
334328
api_key=None,
335-
temperature=DEFAULT_TEMPERATURE,
336329
base_url=None,
337330
**kwargs,
338331
):
@@ -343,7 +336,7 @@ def get_openrouter_chat(
343336
dotenv.get_dotenv_value("OPEN_ROUTER_BASE_URL")
344337
or "https://openrouter.ai/api/v1"
345338
)
346-
return ChatOpenAI(api_key=api_key, model=model_name, temperature=temperature, base_url=base_url, **kwargs) # type: ignore
339+
return ChatOpenAI(api_key=api_key, model=model_name, base_url=base_url, **kwargs) # type: ignore
347340

348341

349342
def get_openrouter_embedding(
@@ -366,7 +359,6 @@ def get_openrouter_embedding(
366359
def get_sambanova_chat(
367360
model_name: str,
368361
api_key=None,
369-
temperature=DEFAULT_TEMPERATURE,
370362
base_url=None,
371363
max_tokens=1024,
372364
**kwargs,
@@ -378,7 +370,7 @@ def get_sambanova_chat(
378370
dotenv.get_dotenv_value("SAMBANOVA_BASE_URL")
379371
or "https://fast-api.snova.ai/v1"
380372
)
381-
return ChatOpenAI(api_key=api_key, model=model_name, temperature=temperature, base_url=base_url, max_tokens=max_tokens, **kwargs) # type: ignore
373+
return ChatOpenAI(api_key=api_key, model=model_name, base_url=base_url, max_tokens=max_tokens, **kwargs) # type: ignore
382374

383375

384376
# right now sambanova does not have embedding models, but that might change
@@ -402,11 +394,10 @@ def get_sambanova_embedding(
402394
def get_other_chat(
403395
model_name: str,
404396
api_key=None,
405-
temperature=DEFAULT_TEMPERATURE,
406397
base_url=None,
407398
**kwargs,
408399
):
409-
return ChatOpenAI(api_key=api_key, model=model_name, temperature=temperature, base_url=base_url, **kwargs) # type: ignore
400+
return ChatOpenAI(api_key=api_key, model=model_name, base_url=base_url, **kwargs) # type: ignore
410401

411402

412403
def get_other_embedding(model_name: str, api_key=None, base_url=None, **kwargs):

prompts/default/agent.system.main.role.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
## Your role
2-
{{agent_name}} autonomous json ai agent
2+
agent zero autonomous json ai agent
33
solve superior tasks using tools and subordinates
44
follow behavioral rules instructions
55
execute code actions yourself not instruct superior

0 commit comments

Comments
 (0)