Skip to content

Commit

Permalink
feat: support model gpt4o-mini (#419)
Browse files Browse the repository at this point in the history
  • Loading branch information
mkXultra authored Aug 8, 2024
1 parent dd3da50 commit 32f4eb3
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 3 deletions.
7 changes: 5 additions & 2 deletions book_maker/cli.py
Original file line number Diff line number Diff line change
Expand Up @@ -312,7 +312,7 @@ def main():
translate_model = MODEL_DICT.get(options.model)
assert translate_model is not None, "unsupported model"
API_KEY = ""
if options.model in ["openai", "chatgptapi", "gpt4"]:
if options.model in ["openai", "chatgptapi", "gpt4", "gpt4omini"]:
if OPENAI_API_KEY := (
options.openai_key
or env.get(
Expand Down Expand Up @@ -429,6 +429,7 @@ def main():
assert options.model in [
"chatgptapi",
"gpt4",
"gpt4omini",
], "only support chatgptapi for deployment_id"
if not options.api_base:
raise ValueError("`api_base` must be provided when using `deployment_id`")
Expand All @@ -439,7 +440,7 @@ def main():
e.translate_model.set_model_list(options.model_list.split(","))
else:
raise ValueError(
"When using `openai` model, you must also provide `--model_list`. For default model sets use `--model chatgptapi` or `--model gpt4`",
"When using `openai` model, you must also provide `--model_list`. For default model sets use `--model chatgptapi` or `--model gpt4` or `--model gpt4omini`",
)
# TODO refactor, quick fix for gpt4 model
if options.model == "chatgptapi":
Expand All @@ -449,6 +450,8 @@ def main():
e.translate_model.set_gpt35_models()
if options.model == "gpt4":
e.translate_model.set_gpt4_models()
if options.model == "gpt4omini":
e.translate_model.set_gpt4omini_models()
if options.block_size > 0:
e.block_size = options.block_size

Expand Down
1 change: 1 addition & 0 deletions book_maker/translator/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
"openai": ChatGPTAPI,
"chatgptapi": ChatGPTAPI,
"gpt4": ChatGPTAPI,
"gpt4omini": ChatGPTAPI,
"google": Google,
"caiyun": Caiyun,
"deepl": DeepL,
Expand Down
17 changes: 17 additions & 0 deletions book_maker/translator/chatgptapi_translator.py
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,11 @@
"gpt-4-32k-0613",
]

GPT4oMINI_MODEL_LIST = [
"gpt-4o-mini",
"gpt-4o-mini-2024-07-18",
]


class ChatGPTAPI(Base):
DEFAULT_PROMPT = "Please help me to translate,`{text}` to {language}, please return only translated content not include the origin text"
Expand Down Expand Up @@ -335,6 +340,18 @@ def set_gpt4_models(self):
print(f"Using model list {model_list}")
self.model_list = cycle(model_list)

def set_gpt4omini_models(self):
# for issue #375 azure can not use model list
if self.deployment_id:
self.model_list = cycle(["gpt-4o-mini"])
else:
my_model_list = [
i["id"] for i in self.openai_client.models.list().model_dump()["data"]
]
model_list = list(set(my_model_list) & set(GPT4oMINI_MODEL_LIST))
print(f"Using model list {model_list}")
self.model_list = cycle(model_list)

def set_model_list(self, model_list):
model_list = list(set(model_list))
print(f"Using model list {model_list}")
Expand Down
2 changes: 1 addition & 1 deletion docs/model_lang.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
## Models
`-m, --model <Model>` <br>

Currently `bbook_maker` supports these models: `chatgptapi` , `gpt3` , `google` , `caiyun` , `deepl` , `deeplfree` , `gpt4` , `claude` , `customapi`.
Currently `bbook_maker` supports these models: `chatgptapi` , `gpt3` , `google` , `caiyun` , `deepl` , `deeplfree` , `gpt4` , `gpt4omini` , `claude` , `customapi`.
Default model is `chatgptapi` .

### OPENAI models
Expand Down

0 comments on commit 32f4eb3

Please sign in to comment.