diff --git a/electron-builder.yml b/electron-builder.yml index ce48c92848..a092c7137f 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -65,9 +65,15 @@ afterSign: scripts/notarize.js releaseInfo: releaseNotes: | 本次更新: + 增加流式输出开关 + Windows 安装程序支持修改安装位置了 + 服务商和小程序图标更新 + 增加 ocoolAI 服务商 + 小程序增加 HuggingChat + Gemini 模型回复安全级别关闭 + 修复 macOS 切换窗口透明不生效问题 + 修复消息回复完成界面会自动滚动到最底部的问题 + 近期更新: 全新应用图标 模型图标更新 - 近期更新: - 支持话题导出为图片 - 支持粘贴图片和文件到聊天输入框 - 支持将对话移动到其他智能体了 + 支持 Linux ARM 架构 diff --git a/src/renderer/src/assets/images/apps/huggingchat.svg b/src/renderer/src/assets/images/apps/huggingchat.svg new file mode 100644 index 0000000000..49765f6468 --- /dev/null +++ b/src/renderer/src/assets/images/apps/huggingchat.svg @@ -0,0 +1,14 @@ + + + + + diff --git a/src/renderer/src/config/minapps.ts b/src/renderer/src/config/minapps.ts index 784bb309c9..98770c0588 100644 --- a/src/renderer/src/config/minapps.ts +++ b/src/renderer/src/config/minapps.ts @@ -5,6 +5,7 @@ import BaicuanAppLogo from '@renderer/assets/images/apps/baixiaoying.webp' import DevvAppLogo from '@renderer/assets/images/apps/devv.png' import DoubaoAppLogo from '@renderer/assets/images/apps/doubao.png' import GeminiAppLogo from '@renderer/assets/images/apps/gemini.png' +import HuggingChatLogo from '@renderer/assets/images/apps/huggingchat.svg' import KimiAppLogo from '@renderer/assets/images/apps/kimi.jpg' import MetasoAppLogo from '@renderer/assets/images/apps/metaso.webp' import PerplexityAppLogo from '@renderer/assets/images/apps/perplexity.webp' @@ -191,6 +192,13 @@ const _apps: MinAppType[] = [ logo: ZhihuAppLogo, url: 'https://zhida.zhihu.com/', bodered: true + }, + { + id: 'hugging-chat', + name: 'HuggingChat', + logo: HuggingChatLogo, + url: 'https://huggingface.co/chat/', + bodered: true } ] diff --git a/src/renderer/src/providers/AnthropicProvider.ts b/src/renderer/src/providers/AnthropicProvider.ts index e1432a0eed..feef21d1a0 100644 --- a/src/renderer/src/providers/AnthropicProvider.ts +++ b/src/renderer/src/providers/AnthropicProvider.ts @@ -72,15 +72,16 @@ export default class AnthropicProvider extends BaseProvider { userMessages.shift() } + const body: MessageCreateParamsNonStreaming = { + model: model.id, + messages: userMessages, + max_tokens: maxTokens || DEFAULT_MAX_TOKENS, + temperature: assistant?.settings?.temperature, + system: assistant.prompt + } + if (!streamOutput) { - const message = await this.sdk.messages.create({ - model: model.id, - messages: userMessages, - max_tokens: maxTokens || DEFAULT_MAX_TOKENS, - temperature: assistant?.settings?.temperature, - system: assistant.prompt, - stream: false - }) + const message = await this.sdk.messages.create({ ...body, stream: false }) return onChunk({ text: message.content[0].type === 'text' ? message.content[0].text : '', usage: message.usage @@ -89,14 +90,7 @@ export default class AnthropicProvider extends BaseProvider { return new Promise((resolve, reject) => { const stream = this.sdk.messages - .stream({ - model: model.id, - messages: userMessages, - max_tokens: maxTokens || DEFAULT_MAX_TOKENS, - temperature: assistant?.settings?.temperature, - system: assistant.prompt, - stream: true - }) + .stream({ ...body, stream: true }) .on('text', (text) => { if (window.keyv.get(EVENT_NAMES.CHAT_COMPLETION_PAUSED)) { stream.controller.abort() diff --git a/src/renderer/src/providers/OpenAIProvider.ts b/src/renderer/src/providers/OpenAIProvider.ts index 733845bb8d..cfa3be8e7d 100644 --- a/src/renderer/src/providers/OpenAIProvider.ts +++ b/src/renderer/src/providers/OpenAIProvider.ts @@ -130,10 +130,10 @@ export default class OpenAIProvider extends BaseProvider { const stream = await this.sdk.chat.completions.create({ model: model.id, messages: [systemMessage, ...userMessages].filter(Boolean) as ChatCompletionMessageParam[], - stream: isSupportStreamOutput, temperature: assistant?.settings?.temperature, max_tokens: maxTokens, - keep_alive: this.keepAliveTime + keep_alive: this.keepAliveTime, + stream: isSupportStreamOutput }) if (!isSupportStreamOutput) {