supported g4f (gpt4free)
This commit is contained in:
@@ -2,6 +2,7 @@ import logging
|
|||||||
import re
|
import re
|
||||||
import json
|
import json
|
||||||
from typing import List
|
from typing import List
|
||||||
|
import g4f
|
||||||
from loguru import logger
|
from loguru import logger
|
||||||
from openai import OpenAI
|
from openai import OpenAI
|
||||||
|
|
||||||
@@ -9,7 +10,19 @@ from app.config import config
|
|||||||
|
|
||||||
|
|
||||||
def _generate_response(prompt: str) -> str:
|
def _generate_response(prompt: str) -> str:
|
||||||
|
content = ""
|
||||||
llm_provider = config.app.get("llm_provider", "openai")
|
llm_provider = config.app.get("llm_provider", "openai")
|
||||||
|
logger.info(f"llm provider: {llm_provider}")
|
||||||
|
if llm_provider == "g4f":
|
||||||
|
model_name = config.app.get("g4f_model_name", "")
|
||||||
|
if not model_name:
|
||||||
|
model_name = "gpt-3.5-turbo-16k-0613"
|
||||||
|
|
||||||
|
content = g4f.ChatCompletion.create(
|
||||||
|
model=model_name,
|
||||||
|
messages=[{"role": "user", "content": prompt}],
|
||||||
|
)
|
||||||
|
else:
|
||||||
if llm_provider == "moonshot":
|
if llm_provider == "moonshot":
|
||||||
api_key = config.app.get("moonshot_api_key")
|
api_key = config.app.get("moonshot_api_key")
|
||||||
model_name = config.app.get("moonshot_model_name")
|
model_name = config.app.get("moonshot_model_name")
|
||||||
@@ -24,6 +37,7 @@ def _generate_response(prompt: str) -> str:
|
|||||||
api_key = config.app.get("oneapi_api_key")
|
api_key = config.app.get("oneapi_api_key")
|
||||||
model_name = config.app.get("oneapi_model_name")
|
model_name = config.app.get("oneapi_model_name")
|
||||||
base_url = config.app.get("oneapi_base_url", "")
|
base_url = config.app.get("oneapi_base_url", "")
|
||||||
|
model_name = config.app.get("g4f_model_name")
|
||||||
else:
|
else:
|
||||||
raise ValueError("llm_provider is not set, please set it in the config.toml file.")
|
raise ValueError("llm_provider is not set, please set it in the config.toml file.")
|
||||||
|
|
||||||
@@ -41,9 +55,12 @@ def _generate_response(prompt: str) -> str:
|
|||||||
|
|
||||||
response = client.chat.completions.create(
|
response = client.chat.completions.create(
|
||||||
model=model_name,
|
model=model_name,
|
||||||
messages=[{"role": "user", "content": prompt}],
|
messages=[{"role": "user", "content": prompt}]
|
||||||
).choices[0].message.content
|
)
|
||||||
return response
|
if response:
|
||||||
|
content = response.choices[0].message.content
|
||||||
|
|
||||||
|
return content
|
||||||
|
|
||||||
|
|
||||||
def generate_script(video_subject: str, language: str = "zh-CN", paragraph_number: int = 1) -> str:
|
def generate_script(video_subject: str, language: str = "zh-CN", paragraph_number: int = 1) -> str:
|
||||||
@@ -160,6 +177,6 @@ if __name__ == "__main__":
|
|||||||
script = generate_script(video_subject=video_subject, language="zh-CN", paragraph_number=1)
|
script = generate_script(video_subject=video_subject, language="zh-CN", paragraph_number=1)
|
||||||
# print("######################")
|
# print("######################")
|
||||||
# print(script)
|
# print(script)
|
||||||
search_terms = generate_terms(video_subject=video_subject, video_script=script, amount=5)
|
# search_terms = generate_terms(video_subject=video_subject, video_script=script, amount=5)
|
||||||
# print("######################")
|
# print("######################")
|
||||||
# print(search_terms)
|
# print(search_terms)
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
# For example: pexels_api_keys = ["123456789","abcdefghi"]
|
# For example: pexels_api_keys = ["123456789","abcdefghi"]
|
||||||
pexels_api_keys = []
|
pexels_api_keys = []
|
||||||
|
|
||||||
llm_provider="openai" # "openai" or "moonshot" or "oneapi"
|
llm_provider="openai" # "openai" or "moonshot" or "oneapi" or "g4f"
|
||||||
|
|
||||||
# OpenAI API Key
|
# OpenAI API Key
|
||||||
# Visit https://openai.com/api/ for details on obtaining an API key.
|
# Visit https://openai.com/api/ for details on obtaining an API key.
|
||||||
@@ -25,6 +25,11 @@
|
|||||||
oneapi_base_url=""
|
oneapi_base_url=""
|
||||||
oneapi_model_name=""
|
oneapi_model_name=""
|
||||||
|
|
||||||
|
# G4F
|
||||||
|
# Visit https://github.com/xtekky/gpt4free to get more details
|
||||||
|
# Supported model list: https://github.com/xtekky/gpt4free/blob/main/g4f/models.py
|
||||||
|
g4f_model_name = "gpt-3.5-turbo-16k-0613"
|
||||||
|
|
||||||
# Subtitle Provider, "edge" or "whisper"
|
# Subtitle Provider, "edge" or "whisper"
|
||||||
# If empty, the subtitle will not be generated
|
# If empty, the subtitle will not be generated
|
||||||
subtitle_provider = "edge"
|
subtitle_provider = "edge"
|
||||||
|
|||||||
@@ -12,3 +12,4 @@ aiohttp~=3.9.3
|
|||||||
urllib3~=2.2.1
|
urllib3~=2.2.1
|
||||||
pillow~=10.2.0
|
pillow~=10.2.0
|
||||||
pydantic~=2.6.3
|
pydantic~=2.6.3
|
||||||
|
g4f~=0.2.5.4
|
||||||
Reference in New Issue
Block a user