feat: add hugging chat minapp

This commit is contained in:
kangfenmao 2024-09-25 12:09:51 +08:00
parent 51cedcb644
commit 6aee3d8088
5 changed files with 44 additions and 22 deletions

View File

@ -65,9 +65,15 @@ afterSign: scripts/notarize.js
releaseInfo:
releaseNotes: |
本次更新:
增加流式输出开关
Windows 安装程序支持修改安装位置了
服务商和小程序图标更新
增加 ocoolAI 服务商
小程序增加 HuggingChat
Gemini 模型回复安全级别关闭
修复 macOS 切换窗口透明不生效问题
修复消息回复完成界面会自动滚动到最底部的问题
近期更新:
全新应用图标
模型图标更新
近期更新:
支持话题导出为图片
支持粘贴图片和文件到聊天输入框
支持将对话移动到其他智能体了
支持 Linux ARM 架构

View File

@ -0,0 +1,14 @@
<svg xmlns="http://www.w3.org/2000/svg" width="32" height="32" fill="none">
<path
fill="#FFD21E"
d="M4 15.55C4 9.72 8.72 5 14.55 5h4.11a9.34 9.34 0 1 1 0 18.68H7.58l-2.89 2.8a.41.41 0 0 1-.69-.3V15.55Z"
/>
<path
fill="#32343D"
d="M19.63 12.48c.37.14.52.9.9.7.71-.38.98-1.27.6-1.98a1.46 1.46 0 0 0-1.98-.61 1.47 1.47 0 0 0-.6 1.99c.17.34.74-.21 1.08-.1ZM12.72 12.48c-.37.14-.52.9-.9.7a1.47 1.47 0 0 1-.6-1.98 1.46 1.46 0 0 1 1.98-.61c.71.38.98 1.27.6 1.99-.18.34-.74-.21-1.08-.1ZM16.24 19.55c2.89 0 3.82-2.58 3.82-3.9 0-1.33-1.71.7-3.82.7-2.1 0-3.8-2.03-3.8-.7 0 1.32.92 3.9 3.8 3.9Z"
/>
<path
fill="#FF323D"
d="M18.56 18.8c-.57.44-1.33.75-2.32.75-.92 0-1.65-.27-2.2-.68.3-.63.87-1.11 1.55-1.32.12-.03.24.17.36.38.12.2.24.4.37.4s.26-.2.39-.4.26-.4.38-.36a2.56 2.56 0 0 1 1.47 1.23Z"
/>
</svg>

After

Width:  |  Height:  |  Size: 810 B

View File

@ -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
}
]

View File

@ -72,15 +72,16 @@ export default class AnthropicProvider extends BaseProvider {
userMessages.shift()
}
if (!streamOutput) {
const message = await this.sdk.messages.create({
const body: MessageCreateParamsNonStreaming = {
model: model.id,
messages: userMessages,
max_tokens: maxTokens || DEFAULT_MAX_TOKENS,
temperature: assistant?.settings?.temperature,
system: assistant.prompt,
stream: false
})
system: assistant.prompt
}
if (!streamOutput) {
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<void>((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()

View File

@ -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) {