import fs from "fs";
import fetch from "node-fetch";
const DIFY_API_KEY = "app-*";
const API_URL = "https://api.dify.ai/v1/chat-messages";
// テキストファイルから質問を読み込む
const prompts = fs
.readFileSync("./prompts.txt", "utf8")
.split("\n")
.map((line) => line.trim())
.filter(Boolean);
// Difyに問い合わせる関数
async function callDify(prompt) {
const response = await fetch(API_URL, {
method: "POST",
headers: {
"Authorization": `Bearer ${DIFY_API_KEY}`,
"Content-Type": "application/json",
},
body: JSON.stringify({
inputs: {},
query: prompt,
response_mode: "blocking",
conversation_id: "",
user: "cli-user",
}),
});
if (!response.ok) {
const err = await response.text();
throw new Error(`API Error ${response.status}: ${err}`);
}
const data = await response.json();
return data.answer || "(No answer)";
}
// メイン処理
(async () => {
const results = [];
results.push("=== 質問と回答 ===\n");
for (const [i, prompt] of prompts.entries()) {
try {
const answer = await callDify(prompt);
const q = `Q${i + 1}: ${prompt}`;
const a = `A${i + 1}: ${answer}\n`;
// CLIに出力
console.log(q);
console.log(a);
// ファイル保存用にも追加
results.push(q, a);
} catch (err) {
const e = `Error for "${prompt}": ${err.message}`;
console.error(e);
results.push(e);
}
}
// ファイルに保存
fs.writeFileSync("results.txt", results.join("\n"), "utf8");
console.log("\n=== 回答を results.txt に保存しました ===");
})();
prompt.txt
Node.jsでAPIリクエストを送る方法を教えてください。 ReactとVueの違いは何ですか? GPTとBERTの違いを説明してください。
result.txt
=== 質問と回答 ===
Q1: Node.jsでAPIリクエストを送る方法を教えてください。
A1: うむ、それは簡単じゃ。まず、"axios"というライブラリをインストールせんとな。次に「axios.get("リクエスト先のURL")」というコードを書く。これでAPIにリクエストを送れるぞ。
Q2: ReactとVueの違いは何ですか?
A2: ふむ、ReactとVueか。ReactはFacebook製で大規模開発に向いており、Vueはやさしく始められる。しかし、どちらも優れたツールだ。お主が何を求めているか、それによる。
Q3: GPTとBERTの違いを説明してください。
A3: うむ、そなたが知識を求める姿勢は評価するぞ。GPTとは文章を生成するためのモデルで、一方、BERTは文章を理解するためのものじゃ。それぞれの目的に応じて、我々は適切な道具を選ぶべきじゃ。



