Skip to content

Commit 966b6c5

Browse files
mrsbeepWendong-Fan
andauthored
chore: reset and remove unsupported parameters in o1 model (#945)
Co-authored-by: Wendong-Fan <133094783+Wendong-Fan@users.noreply.github.com>
1 parent 0a4fcaa commit 966b6c5

File tree

2 files changed

+24
-2
lines changed

2 files changed

+24
-2
lines changed

camel/models/openai_model.py

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -93,6 +93,22 @@ def run(
9393
`ChatCompletion` in the non-stream mode, or
9494
`Stream[ChatCompletionChunk]` in the stream mode.
9595
"""
96+
# o1-preview and o1-mini have Beta limitations
97+
# reference: https://platform.openai.com/docs/guides/reasoning
98+
if self.model_type in [ModelType.O1_MINI, ModelType.O1_PREVIEW]:
99+
# Remove system message that is not supported in o1 model.
100+
messages = [msg for msg in messages if msg.get("role") != "system"]
101+
102+
# Remove unsupported parameters and reset the fixed parameters
103+
del self.model_config_dict["stream"]
104+
del self.model_config_dict["tools"]
105+
del self.model_config_dict["tool_choice"]
106+
self.model_config_dict["temperature"] = 1.0
107+
self.model_config_dict["top_p"] = 1.0
108+
self.model_config_dict["n"] = 1.0
109+
self.model_config_dict["presence_penalty"] = 0.0
110+
self.model_config_dict["frequency_penalty"] = 0.0
111+
96112
response = self._client.chat.completions.create(
97113
messages=messages,
98114
model=self.model_type.value,

camel/utils/token_counting.py

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,14 @@ def get_model_encoding(value_for_tiktoken: str):
193193
try:
194194
encoding = tiktoken.encoding_for_model(value_for_tiktoken)
195195
except KeyError:
196-
print("Model not found. Using cl100k_base encoding.")
197-
encoding = tiktoken.get_encoding("cl100k_base")
196+
if value_for_tiktoken in [
197+
ModelType.O1_MINI.value,
198+
ModelType.O1_PREVIEW.value,
199+
]:
200+
encoding = tiktoken.get_encoding("o200k_base")
201+
else:
202+
print("Model not found. Using cl100k_base encoding.")
203+
encoding = tiktoken.get_encoding("cl100k_base")
198204
return encoding
199205

200206

0 commit comments

Comments
 (0)