openai数字人直播回复脚本

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)




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值