feat: support claude api fix #659

This commit is contained in:
ikechan8370 2024-03-08 14:38:39 +08:00
parent 8b2493a4bf
commit 79ab6cbd40
17 changed files with 859 additions and 563 deletions

View file

@ -74,21 +74,6 @@ export function randomString (length = 5) {
return str.substr(0, length)
}
export async function upsertMessage (message, suffix = '') {
if (suffix) {
suffix = '_' + suffix
}
await redis.set(`CHATGPT:MESSAGE${suffix}:${message.id}`, JSON.stringify(message))
}
export async function getMessageById (id, suffix = '') {
if (suffix) {
suffix = '_' + suffix
}
let messageStr = await redis.get(`CHATGPT:MESSAGE${suffix}:${id}`)
return JSON.parse(messageStr)
}
export async function tryTimes (promiseFn, maxTries = 10) {
try {
return await promiseFn()

View file

@ -178,9 +178,17 @@ const defaultConfig = {
chatglmRefreshToken: '',
sunoSessToken: '',
sunoClientToken: '',
claudeApiKey: '',
claudeApiBaseUrl: 'http://claude-api.ikechan8370.com',
claudeApiMaxToken: 1024,
claudeApiTemperature: 0.8,
claudeApiModel: '', // claude-3-opus-20240229 claude-3-sonnet-20240229
claudeSystemPrompt: '', // claude api 设定
translateSource: 'openai',
enableMd: false, // 第三方md非QQBot。需要适配器实现segment.markdown和segment.button方可使用否则不建议开启会造成各种错误
version: 'v2.7.10'
enableToolbox: false, // 默认关闭工具箱节省占用和加速启动
version: 'v2.8.0'
}
const _path = process.cwd()
let config = {}

14
utils/history.js Normal file
View file

@ -0,0 +1,14 @@
export async function upsertMessage (message, suffix = '') {
if (suffix) {
suffix = '_' + suffix
}
await redis.set(`CHATGPT:MESSAGE${suffix}:${message.id}`, JSON.stringify(message))
}
export async function getMessageById (id, suffix = '') {
if (suffix) {
suffix = '_' + suffix
}
let messageStr = await redis.get(`CHATGPT:MESSAGE${suffix}:${id}`)
return JSON.parse(messageStr)
}

View file

@ -5,9 +5,7 @@ import { ChatGPTAPI } from './openai/chatgpt-api.js'
import { newFetch } from './proxy.js'
import { CustomGoogleGeminiClient } from '../client/CustomGoogleGeminiClient.js'
import XinghuoClient from './xinghuo/xinghuo.js'
import {getImg, getMessageById, upsertMessage} from './common.js'
import {QwenApi} from "./alibaba/qwen-api.js";
import {v4 as uuid} from "uuid";
import { QwenApi } from './alibaba/qwen-api.js'
// 代码参考https://github.com/yeyang52/yenai-plugin/blob/b50b11338adfa5a4ef93912eefd2f1f704e8b990/model/api/funApi.js#L25
export const translateLangSupports = [