SA-MP Chat-bot 插件对接豆包AI
samp吧
全部回复
仅看楼主
吧务
level 6
Jack_Atos 楼主
这是一个可以在SA-MP里跟AI对话的插件功能
我会在下面发布如何使用教程
======================================
该插件是由作者SimoSbara的samp-chatbot,原本上作者只对接了国外的AI的API,因此我对此插件对接了豆包AI 与作者SimoSbara 它来进行转码。
功能展示
下载地址https://github.com/SimoSbara/samp-chatbot
2025年02月02日 12点02分 1
吧务
level 6
Jack_Atos 楼主
如何使用?
首先你要准备一个豆包API
在火山引擎官网https://www.volcengine.com/ 进行注册并且在这里开通一个豆包模型
选择带有免的模型,进行开通。免费50万的tokens已经足够用了
2025年02月02日 13点02分 2
吧务
level 6
Jack_Atos 楼主
返回到在线推理点击API调用
图中第一个框选的是模型ID,第二个是API Key我们要流下保存
2025年02月02日 13点02分 3
吧务
level 6
Jack_Atos 楼主
接下来我们开始编写代码
#include <a_samp>
#include <core>
#include <float>
#include <samp-chatbot>
#include <Pawn.CMD>
#include <sscanf2>
#define COLOR_RED 0xFF0000FF
#define COLOR_MAGENTA 0xFF00FFFF
#define CHATBOT_DIALOG 10
#define API_KEY "MY_API_KEY" //把你的API Key复制过来
#define GLOBAL_REQUEST -1
#pragma tabsize 0
new lastResponses[MAX_PLAYERS][1024];
new lastGlobalResponse[1024];
main()
{
SetChatBotEncoding(GB2312); //设置中文字符
SelectChatBot(DOUBAO); //选择DOUBAO
SetModel("模型ID"); //把你的模型ID复制过来
SetAPIKey(API_KEY);
SetSystemPrompt("设置你的机器人话题背景"); //这个是设置话题背景
}
CMD:clearmemory(playerid, params[])
{
new id;
if(sscanf(params, "d", id))
return SendClientMessage(playerid, COLOR_RED, "/clearmemory <id>");
ClearMemory(id);
return 1;
}
CMD:disablesysprompt(playerid, params[])
{
SetSystemPrompt("");
return 1;
}
CMD:sysprompt(playerid, params[])
{
new sysPrompt[512];
if(sscanf(params, "s[512]", sysPrompt))
return SendClientMessage(playerid, COLOR_RED, "/sysprompt <system_prompt>");
SetSystemPrompt(sysPrompt);
return 1;
}
CMD:bot(playerid, params[]) //用此指令与机器人开始对话吧!
{
new prompt[512];
if(sscanf(params, "s[512]", prompt))
return SendClientMessage(playerid, COLOR_RED, "/bot <prompt>");
RequestToChatBot(prompt, playerid);
return 1;
}
CMD:botglobal(playerid, params[])
{
new prompt[512];
if(sscanf(params, "s[512]", prompt))
return SendClientMessage(playerid, COLOR_RED, "/botglobal <prompt>");
RequestToChatBot(prompt, GLOBAL_REQUEST);
return 1;
}
CMD:lastresponse(playerid, params[])
{
ShowPlayerDialog(playerid, CHATBOT_DIALOG, DIALOG_STYLE_MSGBOX, "聊天机器人回答", lastResponses[playerid], "好的", "");
return 1;
}
public OnChatBotResponse(prompt[], response[], id)
{
//from a player
if(id >= 0 && id < MAX_PLAYERS)
{
format(lastResponses[id], 1024, "%s", response);
SendClientMessage(id, COLOR_MAGENTA, "聊天机器人已回复!使用 /lastresponse 查看.");
}
else if(id == GLOBAL_REQUEST) //global
{
format(lastGlobalResponse, 2048, "%s", response);
SendClientMessageToAll(COLOR_MAGENTA, "聊天机器人全球响应!使用 /lastglobalresponse 查看.");
}
}
2025年02月02日 13点02分 4
吧务
level 6
Jack_Atos 楼主
兼容open.mp
2025年02月02日 13点02分 5
吧务
level 6
Jack_Atos 楼主
[吐舌]
2025年02月05日 03点02分 6
level 11
靠,你还在折腾这游戏
2025年02月08日 12点02分 7
level 6
一看就会,一学就废
2025年02月20日 14点02分 8
吧务
level 8
帅的
2025年02月22日 15点02分 9
level 11

2025年04月19日 12点04分 11
level 9
生不逢时
2025年05月09日 16点05分 12
吧务
level 6
Jack_Atos 楼主
该代码已过时,有时间我在更新一个新的
2025年10月30日 11点10分 13
level 5
好东西
2025年11月26日 07点11分 14
level 11
牛扒
2026年03月30日 02点03分 15
1