mirror of
https://github.com/RYDE-WORK/Langchain-Chatchat.git
synced 2026-02-08 16:10:18 +08:00
[update]补充chatchat model
This commit is contained in:
parent
6f3a07ee61
commit
44eaf62e6c
@ -98,6 +98,9 @@ OPENAI_API_KEY=sk-xxxxxxxxx
|
|||||||
############ Plugin Service ############
|
############ Plugin Service ############
|
||||||
########################################
|
########################################
|
||||||
|
|
||||||
|
# you can use ChatChat.The local/remote ChatChat service url
|
||||||
|
CHATCHAT_PROXY_URL = 'http://localhost:7861/v1'
|
||||||
|
|
||||||
# The LobeChat plugins store index url
|
# The LobeChat plugins store index url
|
||||||
# PLUGINS_INDEX_URL=https://chat-plugins.lobehub.com
|
# PLUGINS_INDEX_URL=https://chat-plugins.lobehub.com
|
||||||
|
|
||||||
|
|||||||
@ -276,8 +276,8 @@ class AgentRuntime {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private static initChatChat(payload: JWTPayload) {
|
private static initChatChat(payload: JWTPayload) {
|
||||||
const { KNOWLEDGE_PROXY_URL } = getServerConfig();
|
const { CHATCHAT_PROXY_URL } = getServerConfig();
|
||||||
const baseURL = payload?.endpoint || KNOWLEDGE_PROXY_URL;
|
const baseURL = payload?.endpoint || CHATCHAT_PROXY_URL;
|
||||||
|
|
||||||
return new LobeChatChatAI({ baseURL });
|
return new LobeChatChatAI({ baseURL });
|
||||||
}
|
}
|
||||||
|
|||||||
@ -25,7 +25,7 @@ const ModelIcon = memo<ModelProviderIconProps>(({ model, size = 12 }) => {
|
|||||||
|
|
||||||
if (model.startsWith('gpt-3')) return <OpenAI.Avatar size={size} type={'gpt3'} />;
|
if (model.startsWith('gpt-3')) return <OpenAI.Avatar size={size} type={'gpt3'} />;
|
||||||
if (model.startsWith('gpt-4')) return <OpenAI.Avatar size={size} type={'gpt4'} />;
|
if (model.startsWith('gpt-4')) return <OpenAI.Avatar size={size} type={'gpt4'} />;
|
||||||
if (model.startsWith('glm')) return <ChatGLM.Avatar size={size} />;
|
if (model.includes('glm')) return <ChatGLM.Avatar size={size} />;
|
||||||
if (model.includes('claude')) return <Claude.Avatar size={size} />;
|
if (model.includes('claude')) return <Claude.Avatar size={size} />;
|
||||||
if (model.includes('titan')) return <Aws.Avatar size={size} />;
|
if (model.includes('titan')) return <Aws.Avatar size={size} />;
|
||||||
if (model.includes('llama')) return <Meta.Avatar size={size} />;
|
if (model.includes('llama')) return <Meta.Avatar size={size} />;
|
||||||
|
|||||||
@ -12,9 +12,12 @@ import {
|
|||||||
} from '@lobehub/icons';
|
} from '@lobehub/icons';
|
||||||
import { memo } from 'react';
|
import { memo } from 'react';
|
||||||
import { Center } from 'react-layout-kit';
|
import { Center } from 'react-layout-kit';
|
||||||
|
import Avatar from 'next/image';
|
||||||
|
|
||||||
import { ModelProvider } from '@/libs/agent-runtime';
|
import { ModelProvider } from '@/libs/agent-runtime';
|
||||||
|
|
||||||
|
import { imageUrl } from '@/const/url';
|
||||||
|
|
||||||
interface ModelProviderIconProps {
|
interface ModelProviderIconProps {
|
||||||
provider?: string;
|
provider?: string;
|
||||||
}
|
}
|
||||||
@ -69,6 +72,15 @@ const ModelProviderIcon = memo<ModelProviderIconProps>(({ provider }) => {
|
|||||||
return <Anthropic size={20} />;
|
return <Anthropic size={20} />;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ModelProvider.ChatChat: {
|
||||||
|
return <Avatar
|
||||||
|
alt={'Chatchat'}
|
||||||
|
height={24}
|
||||||
|
src={imageUrl('logo.png')}
|
||||||
|
width={24}
|
||||||
|
/>
|
||||||
|
}
|
||||||
|
|
||||||
default: {
|
default: {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|||||||
20
frontend/src/config/modelProviders/chatchat.ts
Normal file
20
frontend/src/config/modelProviders/chatchat.ts
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
import { ModelProviderCard } from '@/types/llm';
|
||||||
|
|
||||||
|
const ChatChat: ModelProviderCard = {
|
||||||
|
id: 'chatchat',
|
||||||
|
chatModels: [
|
||||||
|
{
|
||||||
|
id: 'chatglm_pro',
|
||||||
|
tokens: 128_000,
|
||||||
|
displayName: 'chatglm_pro'
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 'gpt-4-turbo-2024-04-09',
|
||||||
|
tokens: 128_000,
|
||||||
|
displayName: 'gpt-4-turbo-2024-04-09',
|
||||||
|
vision: true,
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
|
||||||
|
export default ChatChat;
|
||||||
@ -9,6 +9,7 @@ import OllamaProvider from './ollama';
|
|||||||
import OpenAIProvider from './openai';
|
import OpenAIProvider from './openai';
|
||||||
import PerplexityProvider from './perplexity';
|
import PerplexityProvider from './perplexity';
|
||||||
import ZhiPuProvider from './zhipu';
|
import ZhiPuProvider from './zhipu';
|
||||||
|
import ChatChatProvider from './chatchat'
|
||||||
|
|
||||||
export const LOBE_DEFAULT_MODEL_LIST: ChatModelCard[] = [
|
export const LOBE_DEFAULT_MODEL_LIST: ChatModelCard[] = [
|
||||||
OpenAIProvider.chatModels,
|
OpenAIProvider.chatModels,
|
||||||
@ -20,6 +21,7 @@ export const LOBE_DEFAULT_MODEL_LIST: ChatModelCard[] = [
|
|||||||
OllamaProvider.chatModels,
|
OllamaProvider.chatModels,
|
||||||
PerplexityProvider.chatModels,
|
PerplexityProvider.chatModels,
|
||||||
AnthropicProvider.chatModels,
|
AnthropicProvider.chatModels,
|
||||||
|
ChatChatProvider.chatModels,
|
||||||
].flat();
|
].flat();
|
||||||
|
|
||||||
export { default as AnthropicProvider } from './anthropic';
|
export { default as AnthropicProvider } from './anthropic';
|
||||||
@ -31,3 +33,4 @@ export { default as OllamaProvider } from './ollama';
|
|||||||
export { default as OpenAIProvider } from './openai';
|
export { default as OpenAIProvider } from './openai';
|
||||||
export { default as PerplexityProvider } from './perplexity';
|
export { default as PerplexityProvider } from './perplexity';
|
||||||
export { default as ZhiPuProvider } from './zhipu';
|
export { default as ZhiPuProvider } from './zhipu';
|
||||||
|
export { default as ChatChatProvider } from './chatchat'
|
||||||
|
|||||||
@ -46,6 +46,9 @@ declare global {
|
|||||||
|
|
||||||
// Ollama Provider;
|
// Ollama Provider;
|
||||||
OLLAMA_PROXY_URL?: string;
|
OLLAMA_PROXY_URL?: string;
|
||||||
|
|
||||||
|
// ChatChat
|
||||||
|
CHATCHAT_PROXY_URL?: string;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -115,6 +118,6 @@ export const getProviderConfig = () => {
|
|||||||
ENABLE_OLLAMA: !!process.env.OLLAMA_PROXY_URL,
|
ENABLE_OLLAMA: !!process.env.OLLAMA_PROXY_URL,
|
||||||
OLLAMA_PROXY_URL: process.env.OLLAMA_PROXY_URL || '',
|
OLLAMA_PROXY_URL: process.env.OLLAMA_PROXY_URL || '',
|
||||||
|
|
||||||
KNOWLEDGE_PROXY_URL: process.env.OLLAMA_PROXY_URL || '',
|
CHATCHAT_PROXY_URL: process.env.CHATCHAT_PROXY_URL || '',
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|||||||
@ -26,6 +26,8 @@ export class LobeChatChatAI implements LobeRuntimeAI {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async chat(payload: ChatStreamPayload, options?: ChatCompetitionOptions) {
|
async chat(payload: ChatStreamPayload, options?: ChatCompetitionOptions) {
|
||||||
|
|
||||||
|
console.log('payload---', payload)
|
||||||
try {
|
try {
|
||||||
const response = await this.client.chat.completions.create(
|
const response = await this.client.chat.completions.create(
|
||||||
payload as unknown as (OpenAI.ChatCompletionCreateParamsStreaming | OpenAI.ChatCompletionCreateParamsNonStreaming),
|
payload as unknown as (OpenAI.ChatCompletionCreateParamsStreaming | OpenAI.ChatCompletionCreateParamsNonStreaming),
|
||||||
|
|||||||
@ -25,7 +25,7 @@ export enum ModelProvider {
|
|||||||
Anthropic = 'anthropic',
|
Anthropic = 'anthropic',
|
||||||
Azure = 'azure',
|
Azure = 'azure',
|
||||||
Bedrock = 'bedrock',
|
Bedrock = 'bedrock',
|
||||||
ChatChat = 'chatChat',
|
ChatChat = 'chatchat',
|
||||||
ChatGLM = 'chatglm',
|
ChatGLM = 'chatglm',
|
||||||
Google = 'google',
|
Google = 'google',
|
||||||
Mistral = 'mistral',
|
Mistral = 'mistral',
|
||||||
|
|||||||
@ -111,6 +111,7 @@ export default {
|
|||||||
openai: 'OpenAI',
|
openai: 'OpenAI',
|
||||||
perplexity: 'Perplexity',
|
perplexity: 'Perplexity',
|
||||||
zhipu: '智谱AI',
|
zhipu: '智谱AI',
|
||||||
|
chatchat: 'ChatChat',
|
||||||
},
|
},
|
||||||
noDescription: '暂无描述',
|
noDescription: '暂无描述',
|
||||||
oauth: 'SSO 登录',
|
oauth: 'SSO 登录',
|
||||||
|
|||||||
@ -60,6 +60,10 @@ export const getProviderAuthPayload = (provider: string) => {
|
|||||||
return { apiKey: modelProviderSelectors.mistralAPIKey(useGlobalStore.getState()) };
|
return { apiKey: modelProviderSelectors.mistralAPIKey(useGlobalStore.getState()) };
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ModelProvider.ChatChat: {
|
||||||
|
return { endpoint: modelProviderSelectors.chatChatProxyUrl(useGlobalStore.getState()) }
|
||||||
|
}
|
||||||
|
|
||||||
default:
|
default:
|
||||||
case ModelProvider.OpenAI: {
|
case ModelProvider.OpenAI: {
|
||||||
const openai = modelProviderSelectors.openAIConfig(useGlobalStore.getState());
|
const openai = modelProviderSelectors.openAIConfig(useGlobalStore.getState());
|
||||||
|
|||||||
@ -11,6 +11,7 @@ import {
|
|||||||
OpenAIProvider,
|
OpenAIProvider,
|
||||||
PerplexityProvider,
|
PerplexityProvider,
|
||||||
ZhiPuProvider,
|
ZhiPuProvider,
|
||||||
|
ChatChatProvider,
|
||||||
} from '@/config/modelProviders';
|
} from '@/config/modelProviders';
|
||||||
import { ChatModelCard, ModelProviderCard } from '@/types/llm';
|
import { ChatModelCard, ModelProviderCard } from '@/types/llm';
|
||||||
import { GlobalLLMProviderKey } from '@/types/settings';
|
import { GlobalLLMProviderKey } from '@/types/settings';
|
||||||
@ -60,6 +61,9 @@ const perplexityAPIKey = (s: GlobalStore) => modelProvider(s).perplexity.apiKey;
|
|||||||
const enableAnthropic = (s: GlobalStore) => modelProvider(s).anthropic.enabled;
|
const enableAnthropic = (s: GlobalStore) => modelProvider(s).anthropic.enabled;
|
||||||
const anthropicAPIKey = (s: GlobalStore) => modelProvider(s).anthropic.apiKey;
|
const anthropicAPIKey = (s: GlobalStore) => modelProvider(s).anthropic.apiKey;
|
||||||
|
|
||||||
|
const enableChatChat = (s: GlobalStore) => modelProvider(s).chatchat.enabled;
|
||||||
|
const chatChatProxyUrl = (s: GlobalStore) => modelProvider(s).chatchat.endpoint;
|
||||||
|
|
||||||
// const azureModelList = (s: GlobalStore): ModelProviderCard => {
|
// const azureModelList = (s: GlobalStore): ModelProviderCard => {
|
||||||
// const azure = azureConfig(s);
|
// const azure = azureConfig(s);
|
||||||
// return {
|
// return {
|
||||||
@ -148,6 +152,7 @@ const modelSelectList = (s: GlobalStore): ModelProviderCard[] => {
|
|||||||
{ ...PerplexityProvider, enabled: enablePerplexity(s) },
|
{ ...PerplexityProvider, enabled: enablePerplexity(s) },
|
||||||
{ ...AnthropicProvider, enabled: enableAnthropic(s) },
|
{ ...AnthropicProvider, enabled: enableAnthropic(s) },
|
||||||
{ ...MistralProvider, enabled: enableMistral(s) },
|
{ ...MistralProvider, enabled: enableMistral(s) },
|
||||||
|
{ ...ChatChatProvider, enabled: enableChatChat(s) },
|
||||||
];
|
];
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -230,4 +235,8 @@ export const modelProviderSelectors = {
|
|||||||
// Mistral
|
// Mistral
|
||||||
enableMistral,
|
enableMistral,
|
||||||
mistralAPIKey,
|
mistralAPIKey,
|
||||||
|
|
||||||
|
// ChatChat
|
||||||
|
enableChatChat,
|
||||||
|
chatChatProxyUrl,
|
||||||
};
|
};
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user