logo
0
0
WeChat Login
[fix]: Refactor Icons component to emit changeIcon event instead of directly changing LLM state. Update App.vue to listen for changeIcon event and handle LLM changes there. Remove unused imports and functions from Icons.vue.

chat hub

利用已有大模型接口搭建个人gpt网站,支持千帆、灵积大模型平台及豆包大模型

技术栈

前端 vue3 + vuetify + pinia + fetch-event-source + highlight.js 后端 bun js + nginx

运行说明

前端

cd chat_hub yarn install yarn build // 将dist目录下的文件上传到服务器,并配置nginx

后端

cd chathub-server bun install bun run start

demo

  • 文本提问 文本提问
  • 代码高亮 代码高亮
  • 模型切换 模型切换
  • 双击切换 双击页面已有对话,即可将其作为新输入
  • 简易命令行
Commadusage
:C or :C清除当前所有对话框
:Q or :Q切换至 Qwen
:Y or :Y切换至 Yiyan
:D or :D切换至 Doubao
:G or :G切换至 GLM
:CC or :CC清除全部上下文
:QC or :QC清除 Qwen 上下文
:YC or :YC清除 Yiyan 上下文
:DC or :DC清除 Doubao 上下文
:GCC or :GCC清除 GLM 上下文
up切换至上一条输入
down切换至下一条输入
  • :C :C :C after
  • :Q :Q ...
  • 快捷键切换大模型 ctrl + shift + y 切换至Yiyan ctrl + shift + d 切换至Doubao ctrl + shift + q 切换至Qwen ctrl + shift + s 切换至Spark ctrl + shift + g 切换至GLM
  • 快捷键 页面下滑至底部
  • 切换回页面后,自动下滑至底部
  • 快捷键导出对话
    • ctrl + shift + c 导出当前对话为JSON文件
    • JSON文件格式如下:
{ "messages": [ { "role": "user", "content": "你好" }, { "role": "assistant", "content": "你好,有什么可以帮助你的吗?" } ] }

测试说明

测试本地前端页面时,修改target为服务器地址

// 修改vue.config.js server:{ proxy:{ '/api':{ target:"http://example.com", //跨域地址 测试时使用 changeOrigin:true, //支持跨域 rewrite:(path) => path.replace(/^\/api/, "")//重写路径,替换/api } } }

Enable PWA

PWA requirement

Enable Copy Code

由于 browser API 限制,仅当本地调试或 server 端使用https时,才能启用复制代码功能。 若想要强行绕过可参考解决navigator.clipboard Cannot read property ‘writeText‘ of undefined

NOTE: 当使用服务器使用 nginx 时,代理配置如下:

location ~ ^/api/ { proxy_pass http://127.0.0.1:9009; # Set some proxy headers proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; # 禁用代理缓冲,确保数据实时发送给客户端 proxy_buffering off; proxy_request_buffering off; # !!! set timeout proxy_read_timeout 240; }

About

No description, topics, or website provided.
3.37 MiB
0 forks0 stars2 branches4 TagREADMEMIT license
Language
Vue65%
TypeScript28.9%
CSS5%
Shell0.8%
Others0.3%