gpt4服务转发实现

编程入门 行业动态 更新时间:2024-10-24 08:24:42

gpt4服务转发实现

gpt4服务转发实现

1.实现原理

通过云服务器代理转发实现

2.实现步骤

1. 购买云服务器(国外的)
2. 开启云服务器SSH服务,并开放端口(5000),并在服务器上安装环境,以及常用工具(Python以及项目中用到的一些包)
3. 利用Python Flask框架编写服务端,部署在服务器上,实现转发功能

具体代码如下

# !/usr/bin/python3
# -*- coding:utf-8 -*-
"""
@author: JHC000abc@gmail
@file: server.py
@time: 2023/11/3 17:16 
@desc: 异步转发服务端,支持上下文"""
import asyncio
import aiohttp
from quart import Quart, request, jsonifyapp = Quart(__name__)def get_response():return {"code": -1,"msg": "","data": ""}async def get_data(query,repeat,system="你是一个智能机器人"):""""""users = [{"role": "user", "content": "{}".format(user)} for user in query.split("|")]messages = [{"role": "system", "content": "{}".format(system)}]messages.extend(users)# print("message",messages)url = ""headers = {"Content-Type": "application/json","Authorization": "Bearer 这里填写购买的GPT4 key"}data = {"model": "gpt-4","messages": messages}answer_lis = []print("repeat",repeat)for i in range(repeat):async with aiohttp.ClientSession(headers=headers) as session:async with session.post(url, json=data) as response:response_text = await response.json()answer_lis.append({str(i+1):{"query":query,"answer":response_text}})return answer_lis@app.route('/conn', methods=["POST"])
async def conn():result = get_response()query = (await request.form).get("query")print("query", query)if query:system = (await request.form).get("system",None)print("system",system)try:repeat = (await request.form).get("repeat",1)if repeat:repeat = int(repeat)if repeat<=1:repeat = 1res = await get_data(query,repeat,system)except Exception as e:print(e,e.__traceback__.tb_lineno)code = 1msg = "gpt error"else:code = 0msg = "success"result["data"] = reselse:code = -1msg = "query empty"result["code"] = coderesult["msg"] = msgreturn jsonify(result)if __name__ == '__main__':asyncio.run(app.run_task(host='0.0.0.0', port=5000))
4.编写客户端,对转发服务发送指令,获取转发结果
# !/usr/bin/python3
# -*- coding:utf-8 -*-
"""
@author: JHC000abc@gmail
@file: client.py
@time: 2023/11/3 17:17 
@desc: """
import requests# 转发服务接口url
url = "http://服务器外网ip地址:5000/conn"
# 请求参数 query:提问的问题 上下文语句通过 | 分割 ,repeat 重复请求接口次数
data = {"query": "你是gpt4吗|我爱你","repeat":3}
# 下边是这个返回值格式样例
print(requests.post(url, data=data).json())
5.返回数据格式(旧版),新版稍有改动
{"code": 0,#0:正常状态,非0存在问题"data": {#gpt接口返回的数据"answer": {"choices": [{"finish_reason": "stop","index": 0,"message": {"content": "是的,我是OpenAI的语言模型GPT-4。","role": "assistant"}}],"created": 1698990351,"id": "chatcmpl-8GhI7thqOFj3qbrY3rCbcuZ84tq9i","model": "gpt-4-0613","object": "chatpletion","usage": {"completion_tokens": 17,"prompt_tokens": 44,"total_tokens": 61}},"query": "你是gpt4吗" # 提问的问题},"msg": "success" # 状态,原因 code不等于0时会在这里提示异常原因
}

更多推荐

gpt4服务转发实现

本文发布于:2023-11-16 22:52:27,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1635195.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!