0%

最近写一个QQ机器人的后端项目,用于对接AI大模型以及一些图片、语音接口,难免要跟各类大模型的api打交道,听说claude更适合角色扮演,而且新出的Claude3.5-sonnet能力甚至超越了GPT-4o,遂一直想要体验一下,但没有国外的实体手机号,所以没有机会。机缘巧合下得知gcp的VertexAI可以白嫖最新的Gemini和Claude,立马来了兴趣,研究后却发现是通过sdk的方式调用的,没有api,但这不是什么大问题,能用就行,实在不行自己写一个本地api服务不就行了吗,说干就干,直接放上仓库地址,如果能帮到您的话不妨给个star鼓励一下:

https://github.com/syuchua/gcp_claude_transfer

配置1说明都在readme里了,如果有什么不明白的话,欢迎提issue。

前几天把自己的一个项目扔到了服务器上,用nginx+域名反代了一下ip+端口,测试却发现请求失败,日志里的报错信息显示不支持的请求类型

waht?

明明本地跑的好好的啊,一番排查之后才找到问题,我这个项目实际上是一个api接口,只接受POST请求,但nginx的配置文件里有一个return 301步骤把http请求都转发给了https,转发之后,POST请求就变成了GET,查了一些资料,发现原来只要把return301 改成307就好了

比方说我原本的nginx.conf是这样的:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
server {

listen 80;

server_name yourip.com;

return 301 https://$host$request_uri;

}



server {

listen 443 ssl http2;

server_name yourip.com;

ssl_certificate /etc/nginx/certs/cert.pem;

ssl_certificate_key /etc/nginx/certs/key.pem;

location / {

proxy_pass http://127.0.0.1:11451;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

只需要改成:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
server {

listen 80;

server_name yourip.com; # 同理,替换为你的域名

return 307 https://$host$request_uri;

}



server {

listen 443 ssl http2;

server_name yourip.com; # 替换域名

ssl_certificate /etc/nginx/certs/cert.pem;

ssl_certificate_key /etc/nginx/certs/key.pem;

location / {

proxy_pass http://127.0.0.1:5212;

proxy_set_header Host $host;

proxy_set_header X-Real-IP $remote_addr;

proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

}

}

就可以了。

今天在Linuxdo闲逛时发现一篇帖子,说是使用某个网站+油猴脚本可以实现GPT4oclaude3.5sonnet等一众最新先进大模型的无限制白嫖(暂时),如果不依赖脚本,仅正常登录使用,每天也能进行50次的对话,本着好东西应该分享的原则,水一篇博客,帮大家也用上**:laughing:**

首先是网站地址:
https://www.vecmul.com/

进入后不要登录,先安装这个油猴脚本:
https://greasyfork.org/zh-CN/scripts/502074-vecmul%E6%97%A0%E9%99%90%E5%AF%B9%E8%AF%9D

之后点击编辑

image-20240729234408576

把下面的代码替换进去:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
// ==UserScript==
// @name 将聊天请求计数保持为零
// @namespace http://tampermonkey.net/
// @version 0.5
// @description 始终将localStorage中chat-request项的计数保持为0
// @match https://www.vecmul.com/*
// @grant none
// ==/UserScript==

(function() {
'use strict';

function keepCountAtZero() {
let chatRequest = localStorage.getItem('chat-request');
if (chatRequest) {
try {
let data = JSON.parse(chatRequest);
if (data.count !== 0) {
data.count = 0;
localStorage.setItem('chat-request', JSON.stringify(data));
}
} catch (e) {
console.error('解析chat-request时出错:', e);
}
}
}

// 初始执行
keepCountAtZero();

// 重写localStorage的setItem方法
const originalSetItem = Storage.prototype.setItem;
Storage.prototype.setItem = function(key, value) {
originalSetItem.call(this, key, value);
if (key === 'chat-request') {
keepCountAtZero();
}
};

console.log('聊天请求计数将始终为零。');
})();

在返回原来那个网站,就可以实现无限制白嫖gpt4o啦,快去试试吧**:laughing:**

今天来分享一个我自己写的芙宁娜QQ机器人后端,拥有的能力包括但不限于AI聊天、绘画、发送涩图、AI语音、翻唱歌曲等,还兼具上下文功能,支持自定义system_prompt,适配http和反向ws连接。先来一波展示:

食用方法

  • 直接对话即可
    • 发送发一张来一张+关键词即可自定义发送涩图,比方说发一张卡芙卡
    • 发送来份涩图来份色图再来一张 即可发送随机涩图
    • 发送画一张生成一张 即可发送AI绘画(如果config.json里有GPT有关的配置,则关键词会调用dalle进行绘画,除dalle外,还支持白嫖bing的AI绘画,需提前将cookie的值填入cookies.json中,只有一个账号的cookie就按字典格式填一个,多个的话可以放进列表里)
    • 发送语音说,``语音回复+要用语音说的话让机器人发送语音,或者再提示词里提示机器人通过把#voice`标签放在回复的开头,实现更生动地语音回复。
    • 发送点歌+歌曲名进行点歌,支持模糊匹配。
    • R-18?
      该接口的涩图数量足有十几万,其中r18占27.8%,建议公共场合尽量设置为0,2的话,还是不要太相信自己的运气了(问就是惨痛的教训)

命令功能

机器人支持以下命令:

  • /help:显示帮助信息。
  • /reset:重置当前会话。
  • /character:输出config.json中的character值,也即当前的人设。
  • /history: 输出之前的条消息记录,默认十条,也可以接空格+数字指定。
  • /clear:清除消息记录,默认十条,可接空格+数字指定。
  • /music_list: 获取歌曲列表
  • /r18 [0, 1, 2]切换涩图接口r18模式,0为关闭,1为开启,2随机
  • /model [new_model]切换模型,新模型需先在model.json中配置好

语音功能需要本地搭建gpt-sovits,可以参考视频https://b23.tv/9dOdMo6

这里放上本地搭建语音整合包
GPT-SoVITS-Inference

部署

接下来是机器人项目的部署,对接QQ使用的是支持onebot协议的llonebot,所以其他类似项目如LagrangeNapCat也是可以的,这里仅演示llonebot的配置,默认使用反向ws连接

包含NTQQ,llonebot插件,MongoDB安装包和项目源码的整合包下载整合包并解压

先双击install_windows.exe安装NTQQ,然后把llonebot.zip复制到NTQQ的插件目录下解压,重启QQ即可在设置里看到有关配置,然后就是填写反向ws监听地址

1
ws://127.0.0.1:8011/ws

然后是双击MongoDB的安装文件,没什么好讲的,安装完成后进入bin目录,打开cmd,输入

1
mongod --dbpath D:\MongoDB\data --logpath D:\MongoDB\log\mongodb.log --logappend   #替换成你自己的对应目录

关闭终端,填写机器人项目的config,config.json里是基础配置

  • openai_api_key: 你的openai_api_key
  • model: 使用的模型,默认为gpt-3.5-turbo
  • self_id:机器人的QQ号。
  • admin_id:管理员的QQ号。
  • block_id: 要屏蔽的QQ号。
  • nicknames:机器人的昵称列表。
  • system_message:系统消息配置,最重要的是character,相当于机器人的人格。
  • connection_type: 连接类型,可选http或ws_reverse
  • report_secret: http事件上传密钥。仅使用http连接时需要填写,默认的123456也可以不管
  • enable_time: 设置定时开启时间
  • disable_time: 设置定时关闭时间
  • proxy_api_base: openai_api_key请求地址,默认为https://api.openai.com/v1
  • system_messagecharacter里填写人设
  • reply_probability: 当收到的消息中没有nickname时的回复频率,1为每一条都回复,0为仅回复带有nickname的消息,默认0.5
  • r18: 0为关闭r18,1开启r18,2为随机发送(慎选)
  • audio_save_path: 语音文件保存位置
  • voice_service_url: 语音接口地址
  • cha_name:语音接口指定角色
    dialogues.json里主要是配置一些固定回答,一般没什么用,除非有什么恶趣味
    model.json里主要是非gpt的其他模型的配置,如果填了,会覆盖config.json里GPT的配置需要为OneAPI格式,model里填写的模型名需要现在aviliable_models里填上。vision代表是否支持识图,如果你的模型可以识图就填true(如果使用gpt系列模型,gpt4系列默认允许识图)

视频教程

【芙宁娜QQ机器人搭建教程】 https://www.bilibili.com/video/BV1BBYcekEUs/?share_source=copy_web&vd_source=6f08734cb3a294b6a1e634a3e5b481ca

获取bing的cookie用于非gpt系列的AI绘图

如果视频无法渲染可以点击链接下载

项目开源仓库

syuchua/MY_QBOT: 一个简单的QQ机器人后端框架 (github.com)

一些跟芙芙聊天的日常

【谁家傻芙芙连9.8和9.11哪个大都分不清】 https://www.bilibili.com/video/BV1TivWeFEot/?share_source=copy_web&vd_source=6f08734cb3a294b6a1e634a3e5b481ca