import logging
import openai
from flask import Flask, jsonify, request
from flask_cors import CORS
import json
app = Flask(__name__)
app.logger.setLevel(logging.DEBUG)
# 添加日志输出格式和处理器
formatter = logging.Formatter('%(asctime)s %(levelname)s - %(message)s')
handler = logging.StreamHandler()
handler.setFormatter(formatter)
app.logger.addHandler(handler)
CORS(app, resources={r"/*": {"origins": "*"}})
@app.errorhandler(500)
def internal_server_error(e):
app.logger.error('服务器内部错误:{}'.format(e))
message = {"status": "failure", "content": "系统异常,请联系开发人员"}
return jsonify(message)
def chatgptUtil(modelName, messagesss,temperature,top_p,n,presence_penalty,frequency_penalty,max_tokens):
openai.api_key = "" # Replace with your OpenAI API key
print(f"当前模型使用的是{modelName},问题为:{messagesss}")
try:
completion_params = {
"model": modelName, # 替换为所需的模型名称
"messages": messagesss,
}
if temperature is not None:
completion_params["temperature"] = temperature
if top_p is not None:
completion_params["top_p"] = top_p
if n is not None:
completion_params["n"] = n
if presence_penalty is not None:
completion_params["presence_penalty"] = presence_penalty
if frequency_penalty is not None:
completion_params["frequency_penalty"] = frequency_penalty
if max_tokens is not None:
completion_params["max_tokens"] = max_tokens
print(completion_params)
completion = openai.ChatCompletion.create(
**completion_params
)
response = completion.choices[0].message
message = {"code": 0, "data": {"result": response}, "message": "返回成功"}
return message
except Exception as e:
message = {"code": 1000, "data": None, "message": e}
print("An error occurred:", e)
return message
# 开播
@app.route('/generate', methods=['POST'])
def startDirect():
data = json.loads(request.data)
model_name = data.get('modelName')
temperature = data.get('temperature')
top_p = data.get('top_p')
n = data.get('n')
presence_penalty = data.get('presence_penalty')
frequency_penalty = data.get('frequency_penalty')
max_tokens = data.get('max_tokens')
if not model_name:
model_name = "gpt-3.5-turbo-0613"
if model_name=="gpt-3.5-turbo-16K":
model_name = "gpt-3.5-turbo-16k"
animal = data.get('animal')
if not animal:
message = {"status": "failure", "content": "系统异常,请联系开发人员"}
return jsonify(message)
response = chatgptUtil(model_name, animal,temperature,top_p,n,presence_penalty,frequency_penalty,max_tokens)
return jsonify(response)
if __name__ == '__main__':
app.run(host='0.0.0.0', port=3001)
openai数字人直播回复脚本
最新推荐文章于 2024-06-03 09:59:54 发布