UNPKG

wechat-bot

Version:
106 lines (103 loc) 3.4 kB
import { getGptReply } from '../openai/index.js' import { getKimiReply } from '../kimi/index.js' import { getXunfeiReply } from '../xunfei/index.js' import dotenv from 'dotenv' import inquirer from 'inquirer' import { getDeepSeekFreeReply } from '../deepseek-free/index.js' import { get302AiReply } from '../302ai/index.js' import { getDifyReply } from '../dify/index.js' import { getOllamaReply } from '../ollama/index.js' const env = dotenv.config().parsed // 环境参数 // 控制启动 async function handleRequest(type) { console.log('type: ', type) switch (type) { case 'ChatGPT': if (env.OPENAI_API_KEY) { const message = await getGptReply('hello') console.log('🌸🌸🌸 / reply: ', message) return } console.log('❌ 请先配置.env文件中的 OPENAI_API_KEY') break case 'Kimi': if (env.KIMI_API_KEY) { const message = await getKimiReply('你好!') console.log('🌸🌸🌸 / reply: ', message) return } console.log('❌ 请先配置.env文件中的 KIMI_API_KEY') break case 'Xunfei': if (env.XUNFEI_APP_ID && env.XUNFEI_API_KEY && env.XUNFEI_API_SECRET) { const message = await getXunfeiReply('你好!') console.log('🌸🌸🌸 / reply: ', message) return } console.log('❌ 请先配置.env文件中的 XUNFEI_APP_ID,XUNFEI_API_KEY,XUNFEI_API_SECRET') break case 'deepseek-free': if (env.DEEPSEEK_FREE_URL && env.DEEPSEEK_FREE_TOKEN && env.DEEPSEEK_FREE_MODEL) { const message = await getDeepSeekFreeReply('你好!') console.log('🌸🌸🌸 / reply: ', message) return } console.log('❌ 请先配置.env文件中的 DEEPSEEK_FREE_URL,DEEPSEEK_FREE_TOKEN,DEEPSEEK_FREE_MODEL') break case 'dify': if (env.DIFY_API_KEY) { const message = await getDifyReply('hello') console.log('🌸🌸🌸 / reply: ', message) return } console.log('❌ 请先配置.env文件中的 DIFY_API_KEY, DIFY_URL') break case '302AI': if (env._302AI_API_KEY) { const message = await get302AiReply('hello') console.log('🌸🌸🌸 / reply: ', message) return } console.log('❌ 请先配置.env文件中的 _302AI_API_KEY') break case 'ollama': if (env.OLLAMA_URL) { const message = await getOllamaReply('hello') console.log('🌸🌸🌸 / reply: ', message) return } console.log('❌ 请先配置.env文件中的 OLLAMA_URL') break default: console.log('🚀服务类型错误') } } const serveList = [ { name: 'ChatGPT', value: 'ChatGPT' }, { name: 'Kimi', value: 'Kimi' }, { name: 'Xunfei', value: 'Xunfei' }, { name: 'deepseek-free', value: 'deepseek-free' }, { name: '302AI', value: '302AI' }, { name: 'dify', value: 'dify' }, // ... 欢迎大家接入更多的服务 { name: 'ollama', value: 'ollama' }, ] const questions = [ { type: 'list', name: 'serviceType', //存储当前问题回答的变量key, message: '请先选择服务类型', choices: serveList, }, ] function init() { inquirer .prompt(questions) .then((res) => { handleRequest(res.serviceType) }) .catch((error) => { console.log('🚀error:', error) }) } init()