提示词库/治AI的毛病/然后调用 chat-completion, 获取 Kimi 的回答 然后调用 chat-completion, 获取 Kimi 的回答
中文已实测✓exp-2476
completion = client.chat.completions.create(
model="kimi-k3",
messages=messages
)
print(completion.choices[0].message)
const OpenAI = require("openai");
const fs = require("fs")
const client = new OpenAI({
apiKey: process.env.MOONSHOT_API_KEY,
baseURL: "https://api.moonshot.cn/v1",
});
async function main() {
// moonshot.pdf 是一个示例文件, 我们支持 pdf, doc, txt 等文本类格式的内容抽取;图片文件不再支持内容抽取,
// 图片理解请使用 purpose="image" 上传图片(参见使用视觉模型指南)
let file_object = await client.files.create({
file: fs.createReadStream("moonshot.pdf"),
purpose: "file-extract"
})
// 获取结果
// file_content = client.files.retrieve_content(file_id=file_object.id)
// 注意,之前 retrieve_content api 在最新版本标记了 warning, 可以用下面这行代替
// 如果是旧版本,可以用 retrieve_content
let file_content = await (await client.files.content(file_object.id)).text()
// 把它放进请求中
let messages = [
{
"role": "system",
"content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。",
},
{
"role": "system",
"content": file_content,
},
{"role": "user", "content": "请简单介绍 moonshot.pdf 的具体内容"},
]
const completion = await client.chat.completions.create({
model: "kimi-k3",
messages: messages
});
console.log(completion.choices[0].message.content);
}
main();
让我们回顾一下文件问答的基本步骤及注意事项:
通过文件上传接口 /v1/files 或 SDK 中的 files.create API 将文件上传至 Kimi 服务器;
通过文件抽取接口 /v1/files/{file_id} 或 SDK 中的 files.content API 获取文件内容,此时获取的文件内容已经对齐了我们推荐的模型易于理解的格式;
将文件抽取后(已经对齐格式的)文件内容(而不是文件 id),以系统提示词 system prompt 的形式放置在 messages 列表中;
开始你对文件内容的提问;
再次注意,请将文件内容放置在 prompt 中,而不是文件的 file_id。
复制后粘贴到 AI 对话框发送,本次对话全程生效
出处:Kimi/Moonshot 官方提示词指南 · platform.moonshot.cn/docs/guide/use-kimi-api-for-file-based-qa · 可信度 S · 标签:中文 / 提示词工程 / 防幻觉 / 少样本 / Kimi 怎么用(对话型)复制后粘贴到对话框发送,本次对话全程生效。想长期用:支持自定义指令的产品(设置→个性化)可设为默认。