评论

云开发接入AI Agent初体验

云开发3步接入AI Agent

最近尝试了一下在云开发里使用AI Agent来生成智力问答题库。整体体验下来还是挺方便,只是还有一些小问题这里简单记录一下。


1、创建Agent

首先,我们需要进入微信云开发管理后台 https://tcb.cloud.tencent.com/dev#/overview

接着在管理后台找到【AI+】模块,然后创建【空白Agent】


2、编排Agent

创建完agent后选择想要用到的ai模型,并根据自己的实际业务对agent进行编排,让ai按照你的要求输出。目前内置的大模型有混元deepseek,也可以自己在大模型中添加自定义模型。遗憾的是云开发个人版并不支持,需升配,云开发个人版的使用限制也是比较多,有条件的小伙伴可以尝试下。

虽然云开发个人版不支持添加自定义模型,但其实只要其他第三方大模型有兼容OpenAI协议也是可以使用。我在免费额度用完后尝试接入了阿里的通义千问大模型,也是可以的哈,只需在已有的模型组里填入Base URL、API Key以及你要调用的模型名即可。阿里是半年内每个大模型都有100W个token的免费额度,爽歪歪~


3、客户端接入

接入方式很简单,复制官方的示例即可。目前用到主要是在小程序端接入。主要步骤其实就是初始化云环境(这点只要有接入云开发都需要做)、使用wx.cloud.extend.AI给Agent发消息(基础库版本>= 3.7.1)、获取Agent响应内容,其他的根据自己需要复制官方或者文档示例。

相关文档:

https://developers.weixin.qq.com/miniprogram/dev/wxcloudservice/wxcloud/reference-sdk-api/extend/ai.html

https://docs.cloudbase.net/ai/sdk-reference/wxExtendAi#aibotsendmessage


之前实践过程发现云函数示例在本地调试时会报错Header is not defined,官方反馈是小程序本地的调试环境不太兼容,最近官方也已经在@cloudbase/adapter-node@1.0.4版本修复了该问题。不过我还没去验证,有兴趣的小伙伴可以尝试下。


实际使用过需考虑业务需要调整和Agent交互消息,比如我的场景是要求生成不重复的题目,就需要把历史已经生成过的题目当做聊天上下文一起发送给Agent,但尽管如此AI也还是会偶尔生成一些重复的题目,需要自己再去过滤排重。贴个自己的一次性代码。。

async generateQuestion() {
    let allQuestionTitleList = await this.getQuestionPage();

    const agentId = "bot-28915b5c";
    const round = 100;

    const history = [];
    if (allQuestionTitleList) {
        history.push({role: "user", message: "已经出过的题目:" + allQuestionTitleList});
    }
    for (let i = 1; i <= round; i++) {
        try {
            let prompt = (i > 1 ? "再" : "") + "生成 30道题,不要和已经出过的题目重复";
            console.log("开始生成题目,第", i, "轮", "prompt:", prompt);
            let content = "";

            const res = await wx.cloud.extend.AI.bot.sendMessage({
                data: {
                    botId: agentId,
                    msg: prompt,
                    history
                }
            });

            for await (let event of res.eventStream) {
                // 收到结束信号,终止循环
                if (event.data === '[DONE]') {
                    break;
                }
                const data = JSON.parse(event.data);
                // 打印输出正文
                const text = data.content;
                if (text) {
                    content += text;
                }
                this.setData({
                    responseContent: text
                });
            }

            content = content.replace("```json", "").replace("```", "");
            console.log("->", content);

            const incrementList = this.cleanDuplicateQuestion(allQuestionTitleList, JSON.parse(content), agentId);

            await this.saveQuestion(incrementList);

            const newQuestionTitleList = incrementList.map(item => item.question).join(";");
            history.push({role: "user", message: prompt});
            history.push({role: "bot", message: newQuestionTitleList});

            allQuestionTitleList = allQuestionTitleList + ";" + newQuestionTitleList;
        } catch (e) {
            console.error("生成题目出现异常,第", i, "轮", e);
        }
    }
},


接入AI后确实比我之前自己在网上搜罗题库,然后再解析word文档或者pdf文件方便不少,但也需要承受AI带来的一些副作用,诸如题目重复、答案有误、所以可能还需要做一些额外的工作,比如用Agent1生成题目然后再用Agent2去检查已经生成的题目是否正确,有利有弊,自己权衡~


最后一次编辑于  08-13  
点赞 4
收藏
评论
登录 后发表内容