samp吧 关注:15,529贴子:401,400
  • 9回复贴,共1

SA-MP Chat-bot 插件对接豆包AI

只看楼主收藏回复

这是一个可以在SA-MP里跟AI对话的插件功能
我会在下面发布如何使用教程
======================================
该插件是由作者SimoSbara的samp-chatbot,原本上作者只对接了国外的AI的API,因此我对此插件对接了豆包AI 与作者SimoSbara 它来进行转码。
功能展示




下载地址https://github.com/SimoSbara/samp-chatbot


IP属地:广东1楼2025-02-02 20:55回复
    如何使用?
    首先你要准备一个豆包API
    在火山引擎官网https://www.volcengine.com/ 进行注册并且在这里开通一个豆包模型



    选择带有免的模型,进行开通。免费50万的tokens已经足够用了


    IP属地:广东2楼2025-02-02 21:04
    回复
      返回到在线推理点击API调用

      图中第一个框选的是模型ID,第二个是API Key我们要流下保存


      IP属地:广东3楼2025-02-02 21:06
      回复
        接下来我们开始编写代码
        #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 查看.");
        }
        }


        IP属地:广东4楼2025-02-02 21:11
        回复
          兼容open.mp


          IP属地:广东来自Android客户端5楼2025-02-02 21:38
          回复


            IP属地:广东来自Android客户端6楼2025-02-05 11:53
            回复
              靠,你还在折腾这游戏


              IP属地:陕西来自Android客户端7楼2025-02-08 20:30
              回复
                一看就会,一学就废


                IP属地:湖南来自Android客户端8楼2025-02-20 22:08
                回复
                  帅的


                  IP属地:重庆来自Android客户端9楼2025-02-22 23:43
                  回复
                    可惜生不逢时,samp已经没落了


                    IP属地:广西10楼2025-03-22 00:06
                    回复