wechat-bot
Version:
106 lines (103 loc) • 3.4 kB
JavaScript
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()