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は文章を理解するためのものじゃ。それぞれの目的に応じて、我々は適切な道具を選ぶべきじゃ。