利用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. **预订时间**:确定你的用餐时间,一些餐厅可能对预订时间有限制。
如果你需要具体的帮助来预订,可以告诉我,我可以帮你查找一些具体的餐厅信息和联系方式。


相关文章
|
4天前
|
SQL 并行计算 API
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
Dask是一个用于并行计算的Python库,它提供了类似于Pandas和NumPy的API,但能够在大型数据集上进行并行计算。
|
3天前
|
前端开发 JavaScript API
惊呆了!学会AJAX与Fetch API,你的Python Web项目瞬间高大上!
【7月更文挑战第15天】AJAX和Fetch API是Web开发中的关键工具,用于异步前后端交互。AJAX借助XMLHttpRequest实现页面局部更新,而Fetch API是现代的、基于Promise的HTTP请求接口,提供更强大功能和简洁语法。结合Python Web框架如Django或Flask,利用这两者能创造无缝体验,提升项目性能和用户体验。学习并应用这些技术,将使你的Web应用焕发新生。**
13 5
|
3天前
|
前端开发 API UED
Python后端与前端交互新纪元:AJAX、Fetch API联手,打造极致用户体验!
【7月更文挑战第15天】Python后端(Django/Flask)与前端通过AJAX或Fetch API实现异步交互,提升Web应用体验。Python提供强大的后端支持,AJAX用于不刷新页面的数据交换,Fetch API作为现代标准,基于Promise简化HTTP请求。结合两者,构建高效、流畅的交互系统,优化响应速度和用户体验,开启Web开发新篇章。
15 5
|
19小时前
|
存储 JSON DataWorks
DataWorks产品使用合集之如何通过数据集成将API接口产生的数据集成到DataWorks?
摘要:DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
|
2天前
|
JSON 监控 API
2024年7月免费天气API接口推荐
天气API对于开发人员来说是构建响应更快、安全性更高的应用程序的有力工具。使用天气API可以帮助开发者提供出色的用户体验,实现高效的数据管理。
23 0
|
3天前
|
监控 网络协议 安全
由于楼层自动化系统的复杂性和多样性,很难给出一个通用的Python代码示例,因为每个系统可能使用不同的硬件、通信协议和软件接口。
由于楼层自动化系统的复杂性和多样性,很难给出一个通用的Python代码示例,因为每个系统可能使用不同的硬件、通信协议和软件接口。
|
4天前
|
前端开发 API 开发者
深度剖析:AJAX、Fetch API如何成为Python后端开发者的最佳拍档!
【7月更文挑战第14天】在Web开发中,前端与后端的协作关键在于异步数据交换。AJAX和Fetch API是两种主要技术,用于不刷新页面的情况下与服务器通信。AJAX依赖XMLHttpRequest,常用于JSON数据传输,而Fetch API是现代替代品,基于Promise,语法简洁。Python的Flask框架可创建API接口来响应这些请求。了解并熟练使用这些技术能提升Python后端开发的效率,构建高性能的Web应用。
9 0
|
4天前
|
前端开发 API 开发者
从零到精通,AJAX与Fetch API让你的Python Web前后端交互无所不能!
【7月更文挑战第14天】在Web开发中,AJAX和Fetch API扮演着关键角色,用于前后端异步通信。AJAX通过XMLHttpRequest实现页面局部更新,但回调模式和复杂API有一定局限。Fetch API作为现代替代,利用Promise简化异步处理,提供更丰富功能和错误处理。Python后端如Flask、Django支持这些交互,助力构建高性能应用。从AJAX到Fetch API的进步,结合Python,提升了开发效率和用户体验。
6 0
|
4天前
|
XML 前端开发 API
颠覆传统!AJAX、Fetch API与Python后端,开启Web开发新篇章!
【7月更文挑战第14天】Web开发中,AJAX作为异步通信先驱,与新兴的Fetch API一起革新交互体验。Fetch基于Promise,简化了请求处理。Python后端,如Flask,提供稳定支撑。这三者的融合,推动Web应用达到新高度,实现高效、实时交互。通过示例展示,我们看到从发送请求到更新UI的流畅过程,以及Python如何轻松返回JSON数据。这种组合揭示了现代Web开发的潜力和魅力。
11 0
|
4天前
|
前端开发 JavaScript API
告别‘老司机’时代,AJAX与Fetch API让你的前端与Python后端无缝对接!
【7月更文挑战第14天】前端与后端交互的关键技术是AJAX和Fetch API。AJAX允许不刷新页面更新内容,而Fetch API提供了Promise基