首页 >> nodejs开发外包 >> node js 调用kimi 接口批量生成网页
node js 调用kimi 接口批量生成网页
发布时间: 2024年9月6日 | 浏览:
| 分类:nodejs开发外包
目录结构:
src
src/html
src/js
src/json
package.json
{
"author": "Your Name",
"license": "ISC",
"type": "module",
"dependencies": {
"fs": "^0.0.1-security",
"marked": "^14.1.1",
"openai": "^4.58.0"
}
}
js/
config.js
// 指定要创建的 JSON 文件的路径
const filePathJson = '../json/data.json';
export { filePathJson }
fsHandle.js
内容
import fs from 'fs'; // 导入 fs 模块
export function creatJson(filePath, jsonContent) {
// 使用 fs.writeFile 方法写入 JSON 文件
fs.writeFile(filePath, jsonContent, (err) => {
if (err) {
console.error('An error occurred:', err);
return;
}
console.log('JSON data has been saved to', filePath);
});
}
libkimi.js
内容
import { OpenAI } from "openai";
const client = new OpenAI({
apiKey: "", // 在这里将 MOONSHOT_API_KEY 替换为你从 Kimi 开放平台申请的 API Key
baseURL: "https://api.moonshot.cn/v1",
})
export async function someAsyncOperation(obj) {
// 模拟一个异步操作,比如从API获取数据
return new Promise(async (resolve) => {
const completion = await client.chat.completions.create({
model: "moonshot-v1-8k",
messages: [
{"role": "system", "content": "你是 Kimi,由 Moonshot AI 提供的人工智能助手,你更擅长中文和英文的对话。你会为用户提供安全,有帮助,准确的回答。同时,你会拒绝一切涉及恐怖主义,种族歧视,黄色暴力等问题的回答。Moonshot AI 为专有名词,不可翻译成其他语言。"},
{"role": "user", "content":obj.title}
],
temperature: 0.3,
})
resolve(completion.choices[0].message.content)
});
}
test.js 执行文件
import { someAsyncOperation } from './libkimi.js';
import { marked } from 'marked';
import { creatJson } from './fsHandle.js';
import { filePathJson } from './config.js';
import fs from 'fs'; // 导入 fs 模块
let array = [{
title: "帮我写理财融资最好的方案都有哪些"
}, {
title: "帮我写提升工作效率的方案"
}, {
title: "帮我写如何更好的向上管理"
}]
async function asyncMapWithAwait(array, asyncFunction) {
const results = [];
for (const item of array) {
let markdownText = await asyncFunction(item);
console.log(markdownText); //单独数据
let htmlText = marked.parse(markdownText)
fs.writeFileSync(`../html/${item.title}.html`, htmlText);
let tempJson = {
title: item.title,
content: marked.parse(htmlText)
}
results.push(tempJson);
}
return results;
}
console.log("config.filePath.json",filePathJson)
// 使用
asyncMapWithAwait(array, someAsyncOperation).then((results) => {
console.log(results); // 输出: [2, 4, 6, 8, 10]
// 将 JSON 对象转换为字符串
let jsonContent = JSON.stringify(results, null, 2); // 使用缩进为 2 空格的格式
creatJson(filePathJson, jsonContent)
});