Moonshot 的API调用以及通过扣子平台封装插件

概要

作者目前在学习扣子平台的相关开发,由于网上很少有对扣子平台插件的开发教程,所以写这篇文章记录一下学习过程,也给大家提供思路。
本次主要讲一下如何申请Moonshot (kimi)的API,并将Moonshot的API封装在扣子平台的插件里,实现智能体通过加载这个插件,可以调用kimi的大模型进行代码生成、智能问答等功能。

整体架构流程

提示:这里可以添加技术整体架构

1、获取Moonshot的API

首先,访问Moonshot开发者平台https://platform.moonshot.cn/。
登录并进行实名认证。为了让开发者们能够更好地体验平台的功能,注册后的开发者将获得价值15元的体验包,这相当于125万 tokens(8k模型)或62.5万 tokens(32k模型)的使用量。
选择 获取API秘钥,跳转到相应说明,如下图所示:
图1
找到 控制台 ,点击进入控制台,也可直接访问https://platform.moonshot.cn/console/account
在这里插入图片描述
进入控制台后,选择 API Key 管理,如图所示:

在这里插入图片描述
新建API,即可创建API Key,名称任取,如图所示:

  • 注意API密钥只会在新建后显示一次,请妥善保存。
    在这里插入图片描述

2、扣子平台插件创建

首先,进入扣子平台https://www.coze.cn/,进入 工作空间,打开资源库。
在这里插入图片描述
在窗口右上角找到添加按钮,新建一个插件,如图所示:
在这里插入图片描述
插件配置如下
在这里插入图片描述
点击确认后,进入Coze IDE开发环境中,由于我已经调试好了,所以图片中显示的是最终结果,如图所示:
在这里插入图片描述

首先在左侧边栏,添加工具,如图所示
在这里插入图片描述
在这里插入图片描述
创建完工具后,添加相关依赖包,如图所示
由于Moonshot的API调用是遵循OpenAI的接口调用规范,所以安装OpenAI依赖包。
在这里插入图片描述
安装好依赖包,进入代码编写部分,具体代码如下
其实就相当于通过python调用OpenAI的方法实现访问Kimi的API,本质就是python开发,有些区别的是,不要删除handler()方法,这相当于一个主函数,是返回最终数据的,如果删除会报错。
如果想进一步完善功能,可在代码区通过 Ctrl + I的方式唤醒AI,告诉其要完善的功能进一步修改代码。

import re
from runtime import Args
from typings.moonshot.moonshot import Input, Output
import requests
import requests
from typing import Optional
from typing import TypedDict
from dataclasses import dataclass
from openai import OpenAI
"""
Each file needs to export a function named `handler`. This function is the entrance to the Tool.

Parameters:
args: parameters of the entry function.
args.input - input parameters, you can get test input value by args.input.xxx.
args.logger - logger instance used to print logs, injected by runtime.

Remember to fill in input/output in Metadata, it helps LLM to recognize and use tool.

Return:
The return data of the function, which should match the declared output parameters.
"""
# Input 
@dataclass
class Input:
    """moonshot 的 api_key"""
    api_key: str
    """需要计算 token 数的文本内容"""
    content: str
    """moonshot-v1-8k"""
    model: Optional[str]

# Output 
class Output(TypedDict, total=False):
    """返回"""
    response: str
    message: str

def handler(args: Args[Input])->Output:
    api_key = args.input.api_key
    content = args.input.content
    model="moonshot-v1-8k",
    response = requests.post("https://api.moonshot.cn/v1/chat/completions", data={"api_key": api_key, "content": content})
    client = OpenAI(
    api_key = "sk-sOvWX23lUsAlr4uflvFzklAjiuRmthmvO5pzdOTndWm3RdAK",
    base_url = "https://api.moonshot.cn/v1",
)
 
    completion = client.chat.completions.create(
        model = "moonshot-v1-8k",
        messages = [
            {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"},
            {"role": "user", "content": content}
        ],
        tools = [{
            "type": "function",
            "function": {
                "name": "CodeRunner",
                "description": "代码执行器,支持运行 python 和 javascript 代码",
                "parameters": {
                    "properties": {
                     "language": {
                            "type": "string",
                            "enum": ["python", "javascript"]
                        },
                        "code": {
                            "type": "string",
                            "description": "代码写在这里"
                        }
                    },
                "type": "object"
                }
            }
        }],
        temperature = 0.3,
    )
    x = completion.choices[0].message
    return x

 

完成代码逻辑的编写后,进行输入输出参数的设置,如图所示
在这里插入图片描述
全部完成后,可在右边栏输入相关参数进行测试
在这里插入图片描述
可以看到输出结果正常,插件基本已经开发完成,可以直接发布到扣子平台了。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值