调用kimi api

发布于:2025-04-05 ⋅ 阅读:(19) ⋅ 点赞:(0)

官网支持python,curl和node.js

 

因为服务器刚好有php环境,所以先用curl调个普通的语音沟通api

<?php
// 定义 API Key 和请求地址
define('MOONSHOT_API_KEY', 'sk-PXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXgk1');
define('MOONSHOT_API_URL', 'https://api.moonshot.cn/v1/chat/completions');

// 设置请求头
$headers = [
    'Content-Type: application/json',
    'Authorization: Bearer ' . MOONSHOT_API_KEY,
];

// 设置请求体
$data = [
    'model' => 'moonshot-v1-8k',
    'messages' => [
        [
            'role' => 'system',
            'content' => '你是我的灵缇宠物犬,名字叫做小羊,今年两岁。',
        ],
        [
            'role' => 'user',
            'content' => '在吗?给我讲个小故事?',
        ],
    ],
    'temperature' => 0.3,
];

// 初始化 cURL 会话
$ch = curl_init();

// 设置 cURL 选项
curl_setopt($ch, CURLOPT_URL, MOONSHOT_API_URL);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

// 执行 cURL 会话
$response = curl_exec($ch);

// 检查是否有错误发生
if (curl_errno($ch)) {
    echo 'cURL 错误: ' . curl_error($ch);
} else {
    // 打印响应内容
    echo 'API 响应: ' . $response;
}

// 关闭 cURL 会话
curl_close($ch);
?>

返回结果很不错

==================================================

下来才是这篇文章测试的关键,测试多模态也就是云端图片内容识别

然而我用php调用file api时候,会提示我图片无法解析,所以先跑起来官方的python试试

这个是官方示例

from pathlib import Path
from openai import OpenAI
 
client = OpenAI(
    api_key = "$MOONSHOT_API_KEY",
    base_url = "https://api.moonshot.cn/v1",
)
 
# xlnet.pdf 是一个示例文件, 我们支持 pdf, doc 以及图片等格式, 对于图片和 pdf 文件,提供 ocr 相关能力
file_object = client.files.create(file=Path("xlnet.pdf"), purpose="file-extract")
 
# 获取结果
# file_content = client.files.retrieve_content(file_id=file_object.id)
# 注意,之前 retrieve_content api 在最新版本标记了 warning, 可以用下面这行代替
# 如果是旧版本,可以用 retrieve_content
file_content = client.files.content(file_id=file_object.id).text
 
# 把它放进请求中
messages = [
    {
        "role": "system",
        "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。",
    },
    {
        "role": "system",
        "content": file_content,
    },
    {"role": "user", "content": "请简单介绍 xlnet.pdf 讲了啥"},
]
 
# 然后调用 chat-completion, 获取 Kimi 的回答
completion = client.chat.completions.create(
  model="moonshot-v1-32k",
  messages=messages,
  temperature=0.3,
)
 
print(completion.choices[0].message)

跑下来结果需要安装python openai模块

那就装吧

pip install openai

其中碰到有个要升级的,升级

好了,安装成功了

回到代码执行位置

哎,和我的php代码没啥区别嘛,都是返回没有解析出内容。尴尬了。。。

换图片试试看吧,这张图我直接丢给kimi网页版,是可以解析的啊~~~ 奇怪奇怪奇怪

openai.BadRequestError: 这里看到返回一个错误号400

去官网查一下吧。

看到官网有个官方kimi api调试工具,老老实实试一下吧

https://github.com/MoonshotAI/moonpalace/releaseshttps://github.com/MoonshotAI/moonpalace/releases

这里搞个windows版吧

下载后原来是个命令行工具

这个先放一边,我又发现在新手指南里有个vision的api

尼玛,为啥不放在上面api列表,而是放在这里,好吧,看到的晚了。

试了一下,果然可以,没毛病,看来文件api是不可以做内容识别的,暂时这么理解吧,需要专门的vision这个视觉模型,而官网的自动识别可以自动去调用,这么就说的通了

再往下看,还有个自动选择kimi模型的条目

这些就后面大家有兴趣再去研究吧,反正我的图片内容识别已经搞定了,这篇文章功德圆满,后续继续其他工作了。

bye~~