.Net 8连接 MoonShot AI Kimi

前言:

最近国产的Kimi免费了,咱们肯定得大大支持,查看了Api文档,发现没有.net版本对应的Api案例,所以以下针对一个API进行展示如何在.net中连接,其他Api接口使用方式相似。

Api官网地址:API Reference – Moonshot AI 开放平台

获取Api key:

我们需要到以下地址拿到Api Key用于调用Api ,只需要手机号登录完成,然后点击API Key管理新建一个保存好。

Intro – Moonshot AI 开放平台

原理:

由于其并未提供.net版本的SDK,所以我们通过CURL方式实现,本质就是发送Http请求。

代码实现:

先看接口信息:

1. 我们需要定义对应的请求和响应对象

Request Structure:

//url & authorization
struct MoonshotConfiguration
{
    public string Url { get; set; }
    public string Authorization { get; set; }
}

//playload
class RequestMessageMoon
{
    public string model { get; set; }
    public double temperature { get; set; }

    public List<MoonMessage> messages { get; set; }
}

//层级封装
struct MoonMessage
{
    public string role { get; set; }
    public string content { get; set; }
}
//role
public enum RoleEnum
{
    system,
    user,
    assistant
}

Respnse structure: 

public class ChoicesItem
{
    /// <summary>
    /// 
    /// </summary>
    public int index { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public Message message { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string finish_reason { get; set; }
}

public class Usage
{
    /// <summary>
    /// 
    /// </summary>
    public int prompt_tokens { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int completion_tokens { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int total_tokens { get; set; }
}

public class Root
{
    /// <summary>
    /// 
    /// </summary>
    public string id { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string @object { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public int created { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public string model { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public List<ChoicesItem> choices { get; set; }

    /// <summary>
    /// 
    /// </summary>
    public Usage usage { get; set; }
}

 

2.发送Http请求: Authorization的信息换成上面你从官网获取的API key.
    /// <summary>
    /// 聊天功能
    /// </summary>
    /// <param name="requestBody"></param>
    /// <returns></returns>
    public async Task<string> Chat(string requestBody)
    {
        if (string.IsNullOrEmpty(requestBody))
            return "Please enter effective information to seek.";

        using var client = new HttpClient();

        //config这种建议写在appsetting里面,这里只是做展示,所以写在一起
        var config = new MoonshotConfiguration
        {
            Url = "https://api.moonshot.cn/v1/chat/completions",
            Authorization = "Bearer 你的API key"
        };

        client.DefaultRequestHeaders.Add("Authorization", config.Authorization);

        var moonMessages = new List<MoonMessage>();
        moonMessages.Add(new MoonMessage
        {
            role = RoleEnum.user.ToString(),
            content = requestBody ?? ""
        });
        var requestMessageMoon = new RequestMessageMoon()
        {
            model = "moonshot-v1-8k",
            temperature = 0.3,
            messages = moonMessages
        };
        var playLoad = JsonConvert.SerializeObject(requestMessageMoon);
        try
        {
            var content = new StringContent(playLoad, Encoding.UTF8, "application/json");
            var responseMessage = await client.PostAsync(config.Url, content);

            if (responseMessage.IsSuccessStatusCode)
            {
                var cRoot = JsonConvert.DeserializeObject<Root>(await responseMessage.Content.ReadAsStringAsync());
                return cRoot?.choices.FirstOrDefault().message.content;
            }
        }
        catch (Exception e)
        {
            Console.WriteLine("这里自己可以对异常信息进行处理,比如日志记录,重试等等...");
        }

        return "Server is being upgrade ,please try it later...";
    }

测试:

我们可以看到成功的调用它的Api,并且在content 上返回了结果,有关其他的返回参数信息可以到Api文档中查看。

以上就是一个简单的连接Kimi Api参考,如果想自己搭建平台,建议可以优化HttpClient,以提高效率,希望对你有帮助。

  • 6
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值