novel-demo / openAI.py
deeme's picture
Upload 4 files
5823f44 verified
import os
from openai import OpenAI
def openAIChatLLM(model_name=None, api_key=None, base_url=None):
"""
model_name 取值
- deepseek-chat
"""
api_key = os.environ.get("OPENAI_API_KEY", api_key)
base_url = os.environ.get("OPENAI_BASE_URL", base_url)
model_name = os.environ.get("OPENAI_API_MODEL", model_name)
client = OpenAI(api_key=api_key, base_url=base_url)
def chatLLM(
messages: list,
temperature=None,
top_p=None,
max_tokens=None,
stream=False,
model=model_name, #可使用自定义模型
) -> dict:
if not stream:
response = client.chat.completions.create(
#model=model_name,
model=model,
messages=messages,
temperature=temperature,
top_p=top_p,
max_tokens=max_tokens,
)
return {
"content": response.choices[0].message.content,
"total_tokens": response.usage.total_tokens,
}
else:
responses = client.chat.completions.create(
#model=model_name,
model=model,
messages=messages,
temperature=temperature,
top_p=top_p,
max_tokens=max_tokens,
stream=True,
)
def respGenerator():
content = ""
for response in responses:
delta = response.choices[0].delta.content
#判断内容时候为空,非空才添加
if delta is not None:
content += delta
#content += delta
# if response.usage:
# total_tokens = response.usage.total_tokens
# else:
total_tokens = None
yield {
"content": content,
"total_tokens": total_tokens,
}
return respGenerator()
return chatLLM