利用Python调用KimiGPT API接口

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

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

什么是API

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

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

kimi文本生成模型介绍

Moonshot AI 的文本生成模型(moonshot-v1)是专门设计用于理解和生成自然语言文本的先进工具。该模型通过接收输入(prompt)来生成相应的文本输出,使得它能够灵活应用于内容创作、代码编写、文本摘要、对话交流以及创意写作等多种场景。为了最大化模型的效能,建议用户给出清晰的指示和示例,这有助于指导模型更准确地完成指定任务。简而言之,moonshot-v1 是一个多功能的文本处理引擎,能够根据用户的提示生成高质量、多样化的文本。

Token说明

Token是自然语言处理(NLP)中的一个术语,代表文本中的一个基本处理单元,在大模型中,输入和输出文本会被分割成Tokens,模型会逐个处理这些Tokens来生成响应。由于模型有最大上下文长度限制,因此Token的使用效率直接影响到能处理的文本量和生成的输出质量。 Token是文本处理中的基本元素,代表字符或字符序列。例如,一个汉字可能被分为多个Token,而常见短语可能只用一个Token表示。在中文文本中,一个Token平均对应大约1.5到2个汉字。

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

以上模型的区别在于它们的最大上下文长度。

使用方法:

如何申请 Kimi Chat API Key

  1. 登录开发平台地址:platform.moonshot.cn/console/api…

1717484648937.jpg

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

1717484672321.jpg

1717484685661.jpg

  1. Kimi API接口用量限制:

1717484701088.jpg

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

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

  1. 首先安装 openai 库
pip3 install openai

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

1717484738017.jpg

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
  1. 以一个简单的示例为例,来演示如何利用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)
  1. 启动API服务

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

python kimi_chat.py
  1. 返回内容格式如下:
{
  "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的功能,并将其集成到您的项目中。
  1. 单轮对话的例子中语言模型将用户信息列表作为输入,并将模型生成的信息作为输出返回。 我们也可以将模型输出的结果继续作为输入的一部分以实现多轮对话。下面是一个简单的示例,如何利用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. **预订时间**:确定你的用餐时间,一些餐厅可能对预订时间有限制。
如果你需要具体的帮助来预订,可以告诉我,我可以帮你查找一些具体的餐厅信息和联系方式。


相关文章
|
3天前
|
存储 前端开发 安全
Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口
这篇文章介绍了如何使用Supabase实现RESTful风格的API接口,用于网站分类和子站点的增删改查(CURD)功能。文章首先阐述了表设计,包括ds_categorys和ds_websites两张表的列名、类型和用途,并提到了为每张表添加的user_id和email字段以支持用户身份识别。接着,文章描述了接口设计,以ds_websites表为例,说明了如何通过RESTful API实现CURD功能,并给出了使用SupabaseClient实现插入数据的相关代码。文章最后提供了项目效果预览和总结,指出学习了Nuxt3创建接口及调用Supabase数据库操作。
Nuxt3 实战 (十):使用 Supabase 实现 RESTful 风格 API 接口
|
3天前
|
XML 安全 API
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
API攻防-接口安全&SOAP&OpenAPI&RESTful&分类特征导入&项目联动检测
|
1天前
|
Java API
java调用个人微信API接口收发朋友圈,删除评论朋友圈
java调用个人微信API接口收发朋友圈,删除评论朋友圈
|
3天前
|
Python
Python+Jinja2实现接口数据批量生成工具
在做接口测试的时候,我们经常会遇到一种情况就是要对接口的参数进行各种可能的校验,手动修改很麻烦,尤其是那些接口参数有几十个甚至更多的,有没有一种方法可以批量的对指定参数做生成处理呢。
13 3
|
1天前
|
安全 API 网络安全
API接口安全加固:应对黑客攻击的实战指南
**API安全摘要:** API成为黑客目标,攻击类型包括未授权访问、CSRF、DDoS、数据泄露和注入攻击。防御策略包括使用OAuth 2.0和JWT进行认证授权,防止CSRF攻击,限制请求速率,避免数据泄露,以及实施注入攻击防护。开发者应定期更新安全措施,确保API安全性。示例代码展示了Node.js中JWT认证的实现。
|
1天前
|
安全 API 开发工具
微信开发:API接口与ipad协议的深度比较及最佳选择
微信开发:API接口与ipad协议的深度比较及最佳选择
|
1天前
|
API
微信API接口、微信二次开发API调用
微信API接口、微信二次开发API调用
|
1天前
|
API Android开发 iOS开发
个人微信开发API协议接口
个人微信开发API协议接口
|
1天前
|
Java API 开发工具
企业微信api,企业微信sdk接口java调用源码
企业微信api,企业微信sdk接口java调用源码
|
1天前
|
Java API 开发工具
个人微信api接口java调用源代码
个人微信api接口java调用源代码