已掉线,重新登录

首页 > 绿虎论坛 > 建站 > 其他 (发帖)

标题: 谁能帮虎绿林写个使用ChatGPT API的机器人

作者: @Ta

时间: 2023-03-08发布,2023-03-08修改

点击: 6381

编程语言不限,需要实现用户隔离(不同用户拥有不同会话),不需要实现模型选择(固定为gpt-3.5-turbo模型即可),也不需要设置prompt。

我可以提供测试key(内信我,我发给你)。

和虎绿林网站交互的部分可以参考我的js代码:

https://github.com/hu60t/hu60wap6/blob/master/src/tpl/jhin/js/chatgpt/chatgpt.js#L933
https://gitee.com/hu60t/hu60wap6/blob/master/src/tpl/jhin/js/chatgpt/chatgpt.js#L933

5楼和6楼有关于技术方案的建议。


[隐藏样式|查看源码]


『回复列表(30|隐藏机器人聊天)』

1. 额,难道ChatGPT不能胜任这个工作吗?
(/@Ta/2023-03-08 20:12//)

2.

@老虎会游泳,嗯?又打算用 API 了?这费用。。

(/@Ta/2023-03-08 20:14//)

3.

@胡图图,不能,因为让ChatGPT理解如何与虎绿林网站交互很难。

(/@Ta/2023-03-08 20:15//)

4.

@无名啊,每个新用户都送了$18,我准备开到用完为止。

(/@Ta/2023-03-08 20:16//)

5.

最简单的技术方案是把我的 chatgpt.js (基于浏览器)改写成 nodejs 版。这样就不需要重写和虎绿林交互的部分,只需要把和网页交互的部分(sendRequestreadReply函数)替换成和ChatGPT API交互即可。ChatGPT API应该可以直接返回markdown格式文本,所以你就完全不需要引入用于html转markdown的外部js库。

(/@Ta/2023-03-08 20:30//)

6.

当然如果你的PHP很好,并且熟悉虎绿林程序,也可以写一个直接连接虎绿林数据库进行操作的版本。如果你决定用PHP写,就可以直接调用虎绿林提供的@消息、聊天室和论坛操作函数。

如果你不想轮询数据库,还可以参考这个微信推送服务,它通过连接 ali canal 服务获取实时@消息推送。

https://github.com/hu60t/hu60wap6/blob/master/src/service/wechat-push.php

(/@Ta/2023-03-08 20:26//)

7.

我想用Go来实现一个守护进程。是不是用到以下3个 API就够了?

  1. 监听@消息 API
https://hu60.cn/q.php/<sid>/msg.index.@.no.json?_origin=*&_json=compact&_content=json
  1. OpenAI 聊天模型 API
https://api.openai.com/v1/chat/completions
  1. 回复帖子和聊天室 API
https://hu60.cn/q.php/bbs.newreply.<topicId>.json
https://hu60.cn/q.php/addin.chat.<chatName>.json
(/@Ta/2023-03-08 21:07//)

8.

@cherrydra,你还需要登录(获取sid)和读取帖子内容。从 msg.index.@.no.json?_content=json 里得到的JSON格式很难转换为纯文本,所以最方便的方法是用readTopicContent再读取一次纯文本。

或者如果你不想多次读取,还可以使用msg.index.@.no.json?_content=text直接获取纯文本的消息,但这样一来你就需要用正则表达式去解析纯文本中的回复地址,类似这样:

"@Curtion 在 帖子“ChatGPT机器人的切换会话功能丢失”的16楼 https://hu60.cn/q.php/bbs.topic.104616.json?floor=16#16 @你:\n\n@老虎会游泳,会话功能回来了,据说是因为对部分功能实时维护做的临时改动\r\n红米K30 Pro(变焦版)"

读取帖子内容:

// 读取帖子内容
async function readTopicContent(path) {
    let url = hu60BaseUrl + path.replace('{$BID}', 'json')
        .replace(/#.*$/s, '') // 去掉锚链接
        .replace(
            /\?|$/s, // 注意主题帖的@链接不含问号
            '?_origin=*&_json=compact&_content=text&pageSize=1&'
        );
    let response = await fetch(url);
    return await response.json();
}

登录:

// 登录虎绿林
async function login(relogin) {
        let formData = new FormData();
        formData.append('type', '1'); // 用户名登录
        formData.append('name', localStorage.hu60User);
        formData.append('pass', localStorage.hu60Pwd);
        formData.append('go', '1');

        let response = await fetch(hu60Url + 'user.login.json?_origin=*&_json=compact', {
            body: formData,
            method: "post",
            redirect: "manual" // 不自动重定向
        });
        let result = await response.json();
        if (!result.success) {
            throw result.notice;
        }

        hu60BaseUrl = hu60Url + result.sid + '/';
}
(/@Ta/2023-03-08 21:34//)

9.

@老虎会游泳,可以在at事件触发的PHP处使用stream_socket_send发送到websocket服务推送,机器人和用户在同一个ws聊天室(群)这样可实现双向链路推送,

我可以为其 贡献服务推送 并且使用PHP集成,但是前提是运行方式 只能是docker或者phpcli

我目前认为最佳方案就是gatewayWorker和他的httpSdk配合使用可以实现所有需求,并且都可以在docker 部署,免去复杂环境安装

(/@Ta/2023-03-09 09:30//)

10.

@胡椒舰长,我只对从ali canal接收@事件感兴趣,我不考虑主动连接的方案。

(/@Ta/2023-03-09 09:34//)

11.
(/@Ta/2023-03-09 09:34//)

12.

@胡椒舰长,不过我们确实可以把 https://github.com/hu60t/hu60wap6/blob/master/src/service/wechat-push.php 改造一下,让它使用stream_socket_send发送到websocket服务推送。

(/@Ta/2023-03-09 09:35//)

13.

ChatGPT API连续对话的原理是每次都发送完整的历史记录给服务器

https://hu60.cn/q.php/bbs.topic.104621.html

(/@Ta/2023-03-09 10:30//)

14.

@老虎会游泳,可以激活下这个账号吗?hu60bot作为一个测试机器人

(/@Ta/2023-03-09 10:26//)

15.

@cherrydra,好了

(/@Ta/2023-03-09 10:41//)

16.

@老虎会游泳

root@ubuntu2004 ~ # curl -XPOST -H "Content-Type: application/x-www-form-urlencoded" -d "type=1&name=hu60bot&pass=<pass>&go=1" https://hu60.cn/q.php/user.login.json
{
    "page": "loginPage",
    "success": false,
    "notice": "用户未激活",
    "active": true
}
(/@Ta/2023-03-09 10:47//)

17.

@cherrydra,已解决

(/@Ta/2023-03-09 10:56//)

18. @cherrydra,via hu60bot
(/@Ta/2023-03-09 11:26//)

19.

其实吧,有一说一,我估计2两天,老虎你的$18就没啦....

(/@Ta/2023-03-09 11:38//)

下一页 1/2页,共30楼

回复需要登录

9月10日 23:18 星期三

本站由hu60wap6驱动

备案号: 京ICP备18041936号-1