利用Python调用KimiGPT API接口实战指南

利用Python调用KimiGPT API接口实战指南

Kimi作为国内目前广受欢迎的AI工具,因其出色的性能和智能功能,迅速赢得了大量用户的青睐。随着用户量的激增,系统在高峰时段可能会面临响应压力。正是借助这一热潮,Kimi团队适时推出了其API服务,使用户和开发者能够更加灵活和深入地集成和使用Kimi的智能功能。

什么是API

API是一个软件解决方案,作为中介,使两个应用程序能够相互交互。以下一些特征让API变得更加有用和有价值:

  • 遵守REST和HTTP等易于访问、广泛理解和开发人员友好的标准。
  • API不仅仅是几行代码;这些是为移动开发人员等特定受众创建的。
  • 这些有清晰的文档和版本,以满足用户的期望。
  • 更好的治理和安全性,以及监控以管理性能和可扩展性。

Kimi大模型API特点

Moonshot的文本生成模型(指moonshot-v1)是一个训练有素的模型,专门用于理解自然语言和书面语言。它能够根据输入(prompt)生成文本输出。文本生成模型可以用于多种任务,包括但不限于内容或代码生成、摘要、对话、创意写作等。

语言模型推理服务则是在其基础上开发和训练的预训练模型的 API 服务。对外主要提供了一个 Chat Completions 接口,它可以用于生成文本,但是它本身是不支持访问网络、数据库等外部资源,也不支持执行任何代码。

当前支持的模型有:

  • moonshot-v1-8k: 它是一个长度为 8k 的模型,适用于生成短文本。
  • moonshot-v1-32k: 它是一个长度为 32k 的模型,适用于生成长文本。
  • moonshot-v1-128k: 它是一个长度为 128k 的模型,适用于生成超长文本。

以上模型的区别在于它们的最大上下文长度,这个长度包括了输入消息和生成的输出,在效果上并没有什么区别。大致来说,对于一段通常的中文文本,1 个 Token 大约相当于 1.5-2 个汉字。

需要注意的是,对于这个文本模型,Input 和 Output 的总和长度不能超过模型的最大上下文长度。

速率限制通过4种方式衡量:并发、RPM(每分钟请求数)、TPM(每分钟 Token 数)、TPD(每天 Token 数)。速率限制可能会在任何一种选项中达到,取决于哪个先发生。例如,你可能向 ChatCompletions 发送了 20 个请求,每个请求只有 100 个 Token ,那么你就达到了限制(如果你的 RPM 限制是 20),即使你在这些 20 个请求中没有发满 200k 个 Token (假设你的TPM限制是 200k)。

对网关,出于方便考虑,会基于请求中的 max_tokens 参数来计算速率限制。这意味着,如果你的请求中包含了 max_tokens 参数,会使用这个参数来计算速率限制。如果你的请求中没有包含 max_tokens 参数,则会使用默认的 max_tokens 参数来计算速率限制。当你发出请求后,会基于你请求的 token 数量加上你 max_tokens 参数的数量来判断你是否达到了速率限制。而不考虑实际生成的 token 数量。

而在计费环节中,会基于你请求的 token 数量加上实际生成的 token 数量来计算费用。

其他值得注意的重要事项:

速率限制是在用户级别而非密钥级别上实施的。

目前在所有模型中共享速率限制。

使用方法:

1、  查找API

可以通过幂简集成-API HUB快速找到大量AI技术相关API,心仪的API可以在登录后添加到个人书签,便于下次使用快速查找。

2、  申请 Kimi Chat API Key

在API详情页了解了API的基础信息后,可以在服务商官网进行开户和充值。

我们在 API Key 管理页面点击「新建」创建一个新的 API Key,在创建好之后会生成一个 key,大家要保存好它,因为只展现一次,如果没记住那就只能删除并重建了:

Kimi API接口用量限制:

  • 并发数:1
  • TPM(每分钟 Token 数):32000
  • RPM(每分钟请求数):3
  • TPD(每天 Token 数):1500000

Python调用Kimi API接口的主要步骤如下:

1. 首先安装 openai 库

pip3 install openai

pip3 show openai 可以查看 openai 的版本. openai 的版本要大于 1.0

openai版本低于1.0会报错

/usr/local/bin/python3 /Users/larryzheng/Desktop/kimi_chat.py
localhost:~ larryzheng$ /usr/local/bin/python3 /Users/larryzheng/Desktop/kimi_chat.py
Traceback (most recent call last):
  File "/Users/larryzheng/Desktop/kimi_chat.py", line 1, in <module>
    from openai import OpenAI
ImportError: cannot import name 'OpenAI' from 'openai' (/usr/local/lib/python3.7/site-packages/openai/__init__.py)
localhost:~ larryzheng$ /usr/local/bin/python3 /Users/larryzheng/Desktop/kimi_chat.py
Traceback (most recent call last):
  File "/Users/larryzheng/Desktop/kimi_chat.py", line 1, in <module>
    from openai import OpenAI
ImportError: cannot import name 'OpenAI' from 'openai' (/usr/local/lib/python3.7/site-packages/openai/__init__.py)

升级一下openai库

pip3 install --upgrade openai

2. 以一个简单的示例为例,来演示如何利用Python编写一个单轮对话的API接口,创建一个kimi_chat.py文件,其中 api_key 替换成自己申请的密钥。代码如下:

from openai import OpenAI

client = OpenAI(
    api_key="sk-*********",
    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": "帮我生成一篇关于怎么使用Kimi API接口文档的文章"
        },
    ],
    temperature=0.3,
)

answer = completion.choices[0].message

print("*" * 30)
print(answer)

3. 启动API服务
使用如下命令启动API服务:

python kimi_chat.py

4. 返回内容格式如下:

{
  "id": "cmpl-04ea926191a14749b7f2c7a48a68abc6",
  "object": "chat.completion",
  "created": 1698999496,
  "model": "moonshot-v1-8k",
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": " 你好,李雷!1+1等于2。如果你有其他问题,请随时提问!"
      },
      "finish_reason": "stop"
    }
  ],
  "usage": {
    "prompt_tokens": 19,
    "completion_tokens": 21,
    "total_tokens": 40
  }
}

返回参数比较多,只获取content这个字段即可

answer = completion.choices[0].message.content

print("*" * 30)
print(answer)

返回结果如下:

当然可以,以下是一篇关于如何使用Kimi API接口的示例文档:

---

# 如何使用Kimi API接口

## 简介

Kimi API是一个强大的接口,为用户提供了与Moonshot AI交互的能力。通过Kimi API,开发者可以创建应用程序,实现与Kimi的对话、信息检索、数据分析等功能。

## 准备工作

在开始使用Kimi API之前,请确保您已经完成了以下步骤:

1. **注册账户**:访问Moonshot AI的官方网站,注册一个开发者账户。
2. **获取API密钥**:在您的账户中生成一个API密钥,这将用于在您的请求中验证身份。
3. **阅读文档**:仔细阅读Kimi API的官方文档,了解支持的功能和使用限制。

## 基本使用

### 1. 初始化请求

要使用Kimi API,您需要发送HTTP请求到指定的端点。以下是一个基本的请求示例:

```http
POST /api/v1/kimi
Host: api.moonshot.ai
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

{
"query": "你好,Kimi!"
}
```

### 2. 发送查询

在请求体中,您可以包含一个`query`字段,其中包含您想要Kimi回答的问题或指令。

### 3. 接收响应

Kimi API将返回一个JSON格式的响应,其中包含Kimi的回答:

```json
{
"response": "你好!有什么可以帮助你的吗?",
"status": "success"
}
```

## 高级功能

### 多语言支持

Kimi API支持多种语言的交互。您可以通过在请求中指定`language`字段来获取不同语言的回答:

```json
{
"query": "你好,Kimi!",
"language": "zh-CN"
}
```

### 上下文管理

Kimi API支持上下文管理,这意味着Kimi可以记住之前的对话内容。这对于创建更自然、连贯的对话体验非常有用。

### 数据分析

Kimi API还可以提供数据分析功能,帮助您理解用户查询的模式和趋势。

## 安全和限制

- **API密钥**:请确保您的API密钥安全,不要在公共代码库或不安全的地方共享。
- **请求限制**:Kimi API可能有请求频率和数据量的限制,请遵守这些限制以避免服务中断。
- **数据隐私**:请遵守数据隐私法规,确保用户数据的安全和保密。

## 结论

Kimi API为开发者提供了一个强大的工具,以创建智能、交互式的应用程序。通过遵循本文档的指南,您可以开始探索Kimi API的功能,并将其集成到您的项目中。

---

请注意,以上文档是一个示例,实际的API使用可能会有所不同。您应该参考Moonshot AI提供的官方文档来获取最准确和最新的信息。

5. 单轮对话的例子中语言模型将用户信息列表作为输入,并将模型生成的信息作为输出返回。 我们也可以将模型输出的结果继续作为输入的一部分以实现多轮对话。下面是一个简单的示例,如何利用Python编写一个多轮对话的API接口,代码如下:

from openai import OpenAI
 
client = OpenAI(
    api_key = "sk-********",
    base_url = "https://api.moonshot.cn/v1",
)
 
history = [
    {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"}
]
 
def chat(query, history):
    history.append({
    "role": "user", 
    "content": query
    })
    completion = client.chat.completions.create(
        model="moonshot-v1-8k",
        messages=history,
        temperature=0.3,
    )
    result = completion.choices[0].message.content
    history.append({
    "role": "assistant",
    "content": result
    })
    return result
 
print(chat("我想要在北京预订一家意大利餐厅?", history))
print(chat("推荐一家评价好的", history))

返回结果如下:

在北京预订一家意大利餐厅是个不错的选择,因为北京有很多优质的意大利餐厅。以下是一些步骤和建议,帮助你预订:

1. **确定预算和口味**:首先,确定你愿意为这顿饭花费多少钱,以及你偏爱的意大利菜式,比如披萨、意面、海鲜等。

2. **在线搜索**:使用搜索引擎或美食预订平台,如大众点评、美团、饿了么等,搜索“北京 意大利餐厅”,这些平台通常会有用户评价和推荐。

3. **查看评价**:阅读餐厅的评价和评论,这可以帮助你了解餐厅的口碑和食物质量。

4. **预订方式**:一些餐厅可能提供在线预订服务,你可以通过它们的官网或者第三方平台进行预订。如果没有在线服务,你可以尝试直接打电话预订。

5. **注意位置**:选择一家地理位置方便的餐厅,特别是如果你计划在特定活动或场合后用餐。

6. **预订时间**:如果你有特定的用餐时间,提前预订可以确保你得到想要的座位。

7. **特殊要求**:如果你有饮食限制或过敏,请在预订时告知餐厅,以便他们能够满足你的需求。

8. **确认预订**:在预订后,确保收到确认信息,并且在用餐前再次确认预订细节。

如果你需要具体的餐厅推荐,我可以帮你查找一些北京的意大利餐厅信息。
在北京,有几家意大利餐厅因其美食和服务而备受好评。以下是一些建议:

1. **意库意大利餐厅**:位于朝阳区,以其正宗的意大利风味和优雅的环境而闻名。

2. **意大利农场**:位于顺义区,提供新鲜食材制作的意大利菜肴,环境舒适,适合家庭聚餐。

3. **La Mezzaluna 半月堂**:位于朝阳区,以精致的意大利美食和优雅的就餐环境著称。

4. **Mammamia意大利餐厅**:位于朝阳区,以其地道的意大利风味和热情的服务受到食客的喜爱。

5. **AROMA**:位于朝阳区,除了意大利菜,还提供其他地中海风味的菜肴,环境现代而舒适。

6. **Galleria美食艺术馆**:位于朝阳区,提供多种意大利传统美食,环境优雅,适合约会或商务用餐。

7. **BOTTEGA意库**:位于朝阳区,以其高品质的食材和创新的意大利菜式受到好评。

请注意,餐厅的评价和人气可能会随时间而变化,建议在预订前查看最新的顾客评价和餐厅信息。你可以通过美食平台或者餐厅的官方网站来获取最新的预订信息和顾客反馈。
周六晚上是餐厅的高峰时段,因此提前预订是明智的选择。以下是一些在北京预订意大利餐厅时可能需要考虑的因素:

1. **提前预订**:由于是周末晚上,很多餐厅可能会比较忙,所以最好提前几天进行预订。

2. **选择餐厅**:根据前述推荐,你可以选择一家评价好的意大利餐厅。

3. **预订方式**:可以通过餐厅的官方网站、电话或者通过第三方预订平台进行预订。

4. **特别要求**:在预订时,可以告知餐厅是两位用餐,并且是周六晚上,如果有特别的座位要求(比如靠窗、安静角落等),也可以一并提出。

5. **确认预订**:在预订后,确保收到餐厅的确认信息,并且在用餐前一天再次确认预订细节。

6. **注意着装**:一些高端餐厅可能有着装要求,提前了解并做好准备。

7. **交通和停车**:考虑到餐厅的位置,提前规划好交通方式,如果开车前往,了解是否有停车服务。

8. **预订时间**:确定你的用餐时间,一些餐厅可能对预订时间有限制。

如果你需要具体的帮助来预订,可以告诉我,我可以帮你查找一些具体的餐厅信息和联系方式。
文章标签: