找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 737|回复: 3

[原创] renpy 对接chatgpt3.5对话模型开发教程+免费apikey渠道分享

[复制链接]
发表于 2023-9-23 05:49:55 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 Furau 于 2023-9-23 08:34 编辑

前言
近段时间 chatgpt应用层出不穷
renpy具有强大的GUI绘制和交互能力,搭配Python的丰富生态 通过很低的开发成本就可以完成一个功能完善的chatgpt AI 对话 程序

效果演示


Snipaste_2023-09-23_04-51-42.png
Snipaste_2023-09-23_05-05-49.png


Snipaste_2023-09-23_05-00-21.png

开发思路以及流程
对话AI程序按照传统的开发思维可以把程序拆分两个具体的部分
1.程序交互前端
2.数据交互后端
其中,程序交互前端我们使用renpy的界面绘制和交互语句就可以完成 详情可以翻阅中文文档

官方文档
输入语句:https://doc.renpy.cn/zh-CN/input.html#renpy.input
输出的几种方式
https://doc.renpy.cn/zh-CN/menus.html

https://doc.renpy.cn/zh-CN/displaying_images.html#show

得益于renpy完善的交互能力,这个部分是一劳永逸的开发,代码也很简单。
前端部分的任务是:
把搜集到的交互数据进行合理的打包,方便后续后端对数据进行操作
各位可以自由发挥,设计更好的交互前端程式。(比如根据不同回答内容做不同界面优化,或者显示某些问题答案的时候,给予一定优化显示)
主要的难点部分在于数据交互后端。
后端部分的任务是:
设计完善的API,把前端修缮好的数据提交给chagpt
chatgpt是openai公司的产物,因为特殊原因,国内网络环境访问官方原生API会出现一些问题

这里有几种解决方案:
1.使用官方OPENAI库(优点,OPENAI有官方Python库renpy无缝对接,无需额外的网络请求,可以第一时间体验最新功能,缺点:请求使用的key会暴露在外容易失效,需要本机正常访问外网服务,并且对接官方成本相对高昂)
2.租赁服务器发送建立中转API接口(优点,比1更加安全,无需暴露key,缺点:传递数据速度对比1稍慢,中转服务器容易被封IP ,更换IP比较麻烦成本也相对高昂)
3.爬虫当前主流服务二次封装接口(优点,成本极低,最小资金投入的方案,更灵活,因为只要是能够长期活着的站点,API 稳定性肯定有保障 缺点:不太道德,而且需要长期的维护)
4.对接第三方API接口服务商(优点,成本低,只调用3.5接口只需要很少的花费,包含2,3的全部优点,缺点,服务商良萎不齐,需要自行斟酌判断)
建议测试学习的开发者使用3,4方案,商业使用的可以按照自己的需求自行选择
本程序使用第四种方案,调用的第三方免费的接口,代码也完全按照第四种方案的调度方式,其他的API调用方案与本方案给出的代码逻辑类似,可以自行理解进行二次开发
免费用作教育,学习用途的第三方接口 项目推荐 https://github.com/chatanywhere/GPT_API_free
主程序代码(script.rpy)
[RenPy] 纯文本查看 复制代码
# chagpt 对接代码

# Furau 2023年9月23日 05:34:00

define e = Character("Chatgpt 3.5")
init python:
    import requests
    import json
    # 请求头
    headers = {
        "Authorization": "Bearer sk-oAVGu2Q3K8ligKkqXPoFSSS7ePWv5lXrpq6tm5XXXXXXXXXL",
        "User-Agent": "Apifox/1.0.0 (https://apifox.com)",
        "Content-Type": "application/json",
        "Accept": "*/*",
        "Cache-Control": "no-cache",
        "Host": "api.chatanywhere.com.cn",
        "Accept-Encoding": "gzip, deflate, br",
        "Connection": "keep-alive"
    }
    # 请求体
    data = {
        "model": "gpt-3.5-turbo",
        "messages": [{"role": "user", "content": "Hello!"}]
    }


# 游戏在此开始。

label start:


    scene bg room


    show eileen happy

    # 此处显示各行对话。

    label midd:
    e "任何问题都可以向我提问"
    define pov = Character("[povname]")

    python:
        povname = renpy.input("输入你的问题", length=32)
        povname = povname.strip()
        data["messages"][0]["content"] = povname
        # response = (sys.path)
        response = requests.post("https://api.chatanywhere.com.cn/v1/chat/completions", headers=headers, data=json.dumps(data))
        response_data = response.json()
        content = response_data['choices'][0]['message']['content']
        if not povname:
            povname = "您没有输入问题"
        povname = content
    menu:
        "chat: [povname]!":
            "chat: [povname]!"
    # e "chat: [povname]!"
    show eileen vhappy
    jump midd
    # 此处为游戏结尾。

    return

为防止key泛滥,这里只展示程序逻辑,其中的API KEY已经经过字符串加密处理,如需查看效果或者进行开发测试可以下载demo或者源代码文件。

下载
源代码:https://wwwb.lanzouw.com/iHYpm19i4ugj
demo: https://wwwb.lanzouw.com/iLgDS19i4ved

评分

参与人数 1活力 +300 干货 +3 收起 理由
被诅咒的章鱼 + 300 + 3 感谢分享!

查看全部评分

 楼主| 发表于 2023-9-23 05:54:11 | 显示全部楼层
demo或者源代码问题可以电邮到code233@126.com 或者本帖回复,每天固定时间处理问题
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2023-9-23 05:55:59 | 显示全部楼层
因为网盘限制,demo只有Windows的版本 后面会补充其他平台版本
回复 支持 抱歉

使用道具 举报

 楼主| 发表于 2023-9-23 05:58:32 | 显示全部楼层
key失效可以论坛私信或者帖子下面回复
回复 支持 抱歉

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|RenPy中文空间 ( 苏ICP备17067825号|苏公网安备 32092302000068号 )

GMT+8, 2024-4-28 05:09 , Processed in 0.072709 second(s), 17 queries , File On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表