【大模型】API调用(以kimi python为例)

参考:Moonshot AI 开放平台

key

学习大模型第一步是申请key,一定要记住(因为它只出现一次)!!!
在这里插入图片描述
在这里插入图片描述

概念

Token

可以被理解为文本处理的基本单位,根据具体的应用场景,这个基本单位可以是单词、子词或者字符等。

Prompt

模型在生成文本或响应之前所接收的初始输入或指令。请编写清晰的说明,模型越少猜测你的需求,你越有可能得到满意的结果。

快速上手

现在的大模型基本都兼容了 OpenAI 的接口规范,可以使用 OpenAI 提供的 Python 或 NodeJS SDK 来调用和使用,这意味着如果你的应用和服务基于 openai 的模型进行开发,那么只需要将 base_url 和 api_key 替换成对应的配置,即可无缝迁移使用其他的大模型

from openai import OpenAI # 导入OpenAI官方库中的OpenAI类

client = OpenAI(
    api_key="MOONSHOT_API_KEY",  # <--在这里将 MOONSHOT_API_KEY 替换为你从 Kimi 开放平台申请的 API Key
    base_url="https://api.moonshot.cn/v1", # <-- 将 base_url 从 https://api.openai.com/v1 替换为https://api.moonshot.cn/v1
)
 
completion = client.chat.completions.create(
    model = "moonshot-v1-8k",		# 使用Moonshot的8k上下文模型
    messages = [
        {"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"},				# 系统角色消息,用于初始化AI行为准则
        {"role": "user", "content": "你好,我叫李雷,1+1等于多少?"}
    ],
    temperature = 0.3,				# 控制输出随机性(0-2,值越低越确定)
)
 
# 通过 API 我们获得了 Kimi 大模型给予我们的回复消息(role=assistant)
print(completion.choices[0].message.content)

# 输出:你好,李雷!1+1等于2。

接口规范

role

指定每条消息的来源,角色决定了在冲突情况下指令的权威性。

  • *system: 由OpenAI添加的消息
  • developer: 来自应用程序开发者(可能也包括OpenAI)
  • *user: 终端用户输入
  • assistant: 从语言模型中采样生成的内容
  • tool: 由某些程序生成,例如代码执行或API调用

流式输出

每当大模型生成了一定数量的 Tokens 时(通常情况下,这个数量是 1 Token),立刻将这些 Tokens 传输给客户端,而不再是等待所有 Tokens 生成完毕后再传输给客户端。

from openai import OpenAI
 
client = OpenAI(
    api_key = "MOONSHOT_API_KEY", # 在这里将 MOONSHOT_API_KEY 替换为你从 Kimi 开放平台申请的 API Key
    base_url = "https://api.moonshot.cn/v1",
)
 
stream = 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,
    stream=True, # <-- 注意这里,我们通过设置 stream=True 开启流式输出模式
)
 
# 当启用流式输出模式(stream=True),SDK 返回的内容也发生了变化,我们不再直接访问返回值中的 choice
# 而是通过 for 循环逐个访问返回值中每个单独的块(chunk)
 
for chunk in stream:
	# 在这里,每个 chunk 的结构都与之前的 completion 相似,但 message 字段被替换成了 delta 字段
	delta = chunk.choices[0].delta # <-- message 字段被替换成了 delta 字段
 
	if delta.content:
		# 我们在打印内容时,由于是流式输出,为了保证句子的连贯性,我们不人为地添加
		# 换行符,因此通过设置 end="" 来取消 print 自带的换行符。
		print(delta.content, end="")

/v1/chat/completions
/v1/files
/v1/files/{file_id}
/v1/files/{file_id}/content

### 使用Python调用Kimi大模型API 为了使用Python调用Kimi大模型API,通常需要遵循特定的接口定义来发送请求并处理响应。下面提供了一个基本的子说明如何通过HTTP POST方法向API端点发送查询,并接收返回的结果。 首先,确保安装了`requests`库用于发起网络请求: ```bash pip install requests ``` 接着,在Python脚本中导入必要的模块并设置访问令牌(如果API要求认证),构建请求体以及执行POST请求获取数据如下所示: ```python import json import requests def call_kimi_api(prompt, api_key): url = 'https://api.kimi.example.com/v1/models/kimi:predict' # 假设这是官方提供的API地址 headers = { 'Content-Type': 'application/json', 'Authorization': f'Bearer {api_key}' } payload = { "inputs": [ {"text": prompt} ] } response = requests.post(url=url, data=json.dumps(payload), headers=headers) if response.status_code == 200: result = response.json() return result['outputs'][0]['generated_text'] else: raise Exception(f'Request failed with status code {response.status_code}: {response.text}') if __name__ == '__main__': api_key = '<your-api-key-here>' # 用户需替换为自己实际拥有的有效API密钥 user_input = input('请输入您想要询问的内容:') output = call_kimi_api(user_input, api_key) print(output) ``` 上述代码展示了怎样利用Python中的`requests`库来进行一次简单的文本生成任务调用[^1]。请注意这里的URL仅为示意用途;真实的API路径应当参照Kimi大模型文档给出的信息进行配置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值