#coding:utf-8 # 这是一个示例 Python 脚本。 # 按 Shift+F10 执行或将其替换为您的代码。 # 按 双击 Shift 在所有地方搜索类、文件、工具窗口、操作和设置。 # def request_api_chatgpt(api_key, prompt): # print(api_key) # print(prompt) # OPENAI_API_KEY = api_key # url = "https://api.openai.com/v1/chat/completions" # # url = "https://one.aiskt.com" # headers = { # "Content-Type": "application/json", # "Authorization": f"Bearer {OPENAI_API_KEY}" # } # data = { # "model": "gpt-4-turbo-preview", # "messages": [ # {"role": "user", "content": "你好"}, # {"role": "assistant", "content": "你好!有什么我可以帮助你的吗?"}, # # {"role": "user", "content": prompt} # {"role": "user", "content": "一张信用卡为多个gpt4账号付费会风控吗"} # ], # "top_p": 0.9, # "temperature": 0.95 # } # response = requests.post(url, # headers=headers, # data=json.dumps(data), # timeout=1200) # # return response from flask import Flask, jsonify from flask import request import requests import time import socket import re app = Flask(__name__) app.config["JSON_AS_ASCII"] = False def get_host_ip(): """ 查询本机ip地址 :return: ip """ try: s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) s.connect(('8.8.8.8', 80)) ip = s.getsockname()[0] finally: s.close() return ip chatgpt_url_predict = "http://{}:12000/predict".format(str(get_host_ip())) chatgpt_url_search = "http://{}:12000/search".format(str(get_host_ip())) def request_api_chatgpt(content, model, top_p, temperature): data = { "content": content, "model": model, "top_p": top_p, "temperature": temperature } response = requests.post( chatgpt_url_predict, json=data, timeout=100000 ) if response.status_code == 200: return response.json() else: # logger.error( # "【{}】 Failed to get a proper response from remote " # "server. Status Code: {}. Response: {}" # "".format(url, response.status_code, response.text) # ) print("Failed to get a proper response from remote " "server. Status Code: {}. Response: {}" "".format(response.status_code, response.text)) return {} def uuid_search(uuid): data = { "id": uuid } response = requests.post( chatgpt_url_search, json=data, timeout=100000 ) if response.status_code == 200: return response.json() else: # logger.error( # "【{}】 Failed to get a proper response from remote " # "server. Status Code: {}. Response: {}" # "".format(url, response.status_code, response.text) # ) print("Failed to get a proper response from remote " "server. Status Code: {}. Response: {}" "".format(response.status_code, response.text)) return {} def uuid_search_mp(results): results_list = [""] * len(results) while True: tiaochu_bool = True for i in results_list: if i == "": tiaochu_bool = False break if tiaochu_bool == True: break for i in range(len(results)): uuid = results[i]["texts"]["id"] result = uuid_search(uuid) if result["code"] == 200: results_list[i] = result["text"] time.sleep(3) return results_list @app.route("/predict", methods=["POST"]) def handle_query(): print(request.remote_addr) model = request.json.get("model") messages = request.json.get("messages") top_p = request.json.get("top_p") temperature = request.json.get("temperature") # "messages": [ # {"role": "user", "content": "你好"}, # {"role": "assistant", "content": "你好!有什么我可以帮助你的吗?"}, # # {"role": "user", "content": prompt} # {"role": "user", "content": "一张信用卡为多个gpt4账号付费会风控吗"} # ], content = "<|role|>user<|says|>{}<|end|>\n<|role|>assistant<|says|>".format(messages[-1]["content"]) print(model) print(messages) print(top_p) print(temperature) uid = request_api_chatgpt(content, model, top_p, temperature) # { # "probabilities": null, # "status_code": 200, # "texts": { # "id": "29379d06-d08b-11ee-b56d-31fe0a8adccc" # } # } results = uuid_search_mp([uid])[0] return_text = { 'code': 200, 'id': uid["texts"]["id"], 'object': 0, 'created': 0, 'model': 0, 'choices': [ { 'index': 0, 'message': { 'role': 'assistant', 'content': results }, 'logprobs': None, 'finish_reason': 'stop' } ], 'usage': 0, 'system_fingerprint': 0 } return jsonify(return_text) if __name__ == '__main__': app.run(host="0.0.0.0", port=12005, threaded=True, debug=False)