【AI创作】kimi API初体验

一、介绍

接口文档

https://platform.moonshot.cn/docs/guide/migrating-from-openai-to-kimi

收费详情

在这里插入图片描述

  • 并发: 同一时间内我们最多处理的来自您的请求数
  • RPM: request per minute 指一分钟内您最多向我们发起的请求数
  • TPM: token per minute 指一分钟内您最多和我们交互的token数
  • TPD: token per day 指一天内您最多和我们交互的token数

二、环境准备

获取API Key

访问kimi开发者API
https://platform.moonshot.cn/console/info
找到API Key管理,点击新建:
在这里插入图片描述

三、兼容OpenAI方式开发

在这里插入图片描述

四、代码

from openai import OpenAI
 
client = OpenAI(
    api_key = "$MOONSHOT_API_KEY",
    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": "你好,我叫李雷,1+1等于多少?"}
    ],
    temperature = 0.3,
)
 
print(completion.choices[0].message.content)

在这里插入图片描述
使用恰当长度的模型进行返回。model=moonshot-v1-auto 来让 Kimi 自动选择一个适配当前上下文长度的模型:

import os
import httpx
from openai import OpenAI
 
client = OpenAI(
    api_key=os.environ['MOONSHOT_API_KEY'],
    base_url="https://api.moonshot.cn/v1",
)
 
 
def estimate_token_count(input_messages) -> int:
    """
    在这里实现你的 Tokens 计算逻辑,或是直接调用我们的 Tokens 计算接口计算 Tokens
 
    https://api.moonshot.cn/v1/tokenizers/estimate-token-count
    """
    header = {
        "Authorization": f"Bearer {os.environ['MOONSHOT_API_KEY']}",
    }
    data = {
        "model": "moonshot-v1-128k",
        "messages": input_messages,
    }
    r = httpx.post("https://api.moonshot.cn/v1/tokenizers/estimate-token-count", headers=header, json=data)
    r.raise_for_status()
    return r.json()["data"]["total_tokens"]
 
 
def select_model(input_messages, max_tokens=1024) -> str:
    """
    select_model 根据输入的上下文消息 input_messages,以及预期的 max_tokens 值,
    选择一个大小合适的模型。
 
    select_model 内部会调用 estimate_token_count 函数计算 input_messages 所占用
    的 tokens 数量,加上 max_tokens 的值作为 total_tokens,并根据 total_tokens
    所处的区间选择恰当的模型。
    """
    prompt_tokens = estimate_token_count(input_messages)
    total_tokens = prompt_tokens + max_tokens
    if total_tokens <= 8 * 1024:
        return "moonshot-v1-8k"
    elif total_tokens <= 32 * 1024:
        return "moonshot-v1-32k"
    elif total_tokens <= 128 * 1024:
        return "moonshot-v1-128k"
    else:
        raise Exception("too many tokens 😢")
 
 
messages = [
    {"role": "system", "content": "你是 Kimi"},
    {"role": "user", "content": "你好,请给我讲一个童话故事。"},
]
 
max_tokens = 2048
model = select_model(messages, max_tokens)
 
completion = client.chat.completions.create(
    model=model,
    messages=messages,
    max_tokens=max_tokens,
    temperature=0.3,
)
 
print("model:", model)
print("max_tokens:", max_tokens)
print("completion:", completion.choices[0].message.content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值