域名被锁定网站打不开怎么办,个人做公司网页怎么做,前端简历,温州做高端网站公司排名只关注项目代码的同学可以直接跳转目录中的正文部分#xff0c;查看项目仓库和功能介绍。
引言
Chatbot的UI界面设计#xff0c;是和传统软件不同的#xff1a;都是当面一个简洁的对话框#xff0c;框里预备着热乎的工具#xff0c;可以随时更新。 像我这样做工的牛马查看项目仓库和功能介绍。
引言
Chatbot的UI界面设计是和传统软件不同的都是当面一个简洁的对话框框里预备着热乎的工具可以随时更新。 像我这样做工的牛马午休傍晚下了班每每花几个token问一两句弱智吧的问题——这是一年多前的事现在一个问题都得设计个COT——不用登录在主页改改prompt测完了就发群里刷一下存在感。
倘肯多费点心思便可以问问3.11和3.9谁大或者让姥姥念CD-Key哄你睡姑且当作谈资了。如果充点真金白金那就能获得一个API-Key但我们这些牛马多是白嫖党大抵没有这样阔绰。只有公司报销的领域专家才能点进绑定支付方式的页面里买这买那的写个脚本直接调用API慢慢跑着测。 我从毕业起就在IT通信行业当伙计父母和掌柜都说不是e人怕侍候不了VIP客户就在组里开发开发后端。
公司内的stackholder虽然容易说话但是唠唠叨叨缠夹不清的也很不少。他们往往要亲眼看着代码跑起来看过消息交互的抓包格式对了没有又亲看将服务器整到shutdown还能定时恢复然后放心在这严重监督之下出一点小问题也很为难。
所以过了几天掌柜说这些活太简单了让去看看AI。幸亏大学里有点底子也算对口便改为既要开发后端又要设计前端还要兼顾AI算法和应用场景的奇怪职务了。 我从此便每天挂在Github上看看有什么可以拿来用的App做个Demo。虽然没什么失职但是总觉有些单调。
有些App太臃肿npm install跑完就带上了全家
有些太简单没法适配微信群里一天更新三回的模型和后端框架。
只有最后狠下心来自己悄悄写一个取个名就叫Chat-UI算是勉强满意所以来说说。
https://github.com/AI-QL/chat-uihttps://github.com/AI-QL/chat-ui
Chat-UI是不需要npm install和run time就能运行的只需唯一的html单文件。
它身材很小巧蓝白配色底部夹杂着一些mdi图标只有简单的light主题。
用的虽然是VUE可是只用CDN引入了JS库简单快捷而且都是latest版本似乎不用更新也不用安装。 script srchttps://cdn.jsdelivr.org/npm/vue/dist/vue.global.prod.min.js/scriptscript srchttps://cdn.jsdelivr.org/npm/vuetify/dist/vuetify.js/scriptlink hrefhttps://cdn.jsdelivr.org/npm/vuetify/dist/vuetify.css relstylesheet LLM对人说话总是满口markdown教人半懂不懂的。又因为我自己前端开发经验不过关便直接引入了md-editor-v3替我可视化markdown。 fetch回来的JSON body刚收到所有的组件就都看着它笑有的叫道
“OpenAI你又增加新的限制区域了”它不回答只是吐出一行“Fail to fetch XXX”便不再多言。
他们又故意的高声嚷道“Nidia NIM 都免费提供 Llama 405B 了” OpenAI睁大眼睛说“哪有什么免费的...”
“就是免费的只要注册时候额外申请一下免费token就行了随便用。”
OpenAI便涨红了脸额上的青筋条条绽出争辩道“那也是有数量上限的而且不支持跨域跨域你懂吗”接连便是难懂的话什么“CORS” 什么“Allow Headers”之类
引得众后端都哄笑起来那我再开发一个Proxy不就搞定了吗workflow内充满了开源的空气。
简单小巧的OpenAI API访问一键部署轻松上手-CSDN博客文章浏览阅读1.6k次点赞62次收藏16次。OpenAI Proxy Docker项目不仅简单小巧而且易于上手。通过使用最新的Bun运行时你可以在保持高性能的同时得到可靠的代理服务解决方案。https://blog.csdn.net/aiqlcom/article/details/144684140
听人家背地里谈论OpenAI原来也免费送过5刀的token但没有境外手机号又不会绑境外信用卡于是愈用愈少弄到将要过期了。幸而开源vllm跑得一手好模型便换一个模型当后端用用。
可惜OpenAI又传染的一样坏脾气就是API版本控制。坐不到几天便连JSON和定义一齐更新了。如是几次没有办法便免不了再开发一个API UI偶然查看一下最新格式。
https://api-ui.aiql.com/ 第一次登陆比较慢可以下载html修改CDNhttps://api-ui.aiql.com/
但是OpenAI在我们这里品行比别家都好格式支持的最全报错最详细虽然间或没有在文档里更新暂时记在Issue里但不出一月定然修复从Issue里done掉了名字。 OpenAI融了几回资涨红的股价渐渐走了高旁人便又问道“OpenAIAGI当真有出路么”OpenAI看着问他的人显出不屑置辩的神气。
他们便接着说道“你怎的连半个开源的模型也没有呢?”OpenAI立刻显出颓唐不安模样脸上笼上了一层灰色嘴里说些话这回可是全是金鍂鑫之类一下全懂了。在这时候众人也都哄笑起来workflow内充满了闭源的空气。 在这些时候我可以附和着challenge掌柜是决不责备的。而且掌柜见了那些用OpenAI模型的项目也每每这样发难引人发笑。
OpenAI自己知道不能开源便只好向各方面发力。有一回对我发邮件“你知道多模态和Function call么”
我略略点一点头。
他说“用过……我便要考你一考。request里的messages怎样写的?”
我想API文档里都写着的也配考我么? 便回过脸去不再理会。 OpenAI等了许久很恳切的说道“不会用吧?……我教给你记着!这些format应该记着。将来做掌柜的时候装逼要用。”
我暗想我和掌柜的等级还很远呢而且我们掌柜也从不看开发细节又好笑又不耐烦懒懒的答他道
“谁要你教不就是content里面一个string么?”OpenAI显出极高兴的样子将一个长长的schema敲着我的脑袋点头说“对呀对呀!……messages光是role就有六样写法你知道么?”我愈不耐烦了努着嘴走远。
OpenAI刚写了个oneOf想在后面跟上[developer, system, user, assistent, tool, function]见我毫不热心便又叹一口气显出极惋惜的样子, 把function标为了deprecated然后又把user和tool定义了不一样的content parts。 user, assistent, tool 里面的支持格式其实不一样哟 有几回隔壁开发组见得着KPI也赶热闹围住了OpenAI。它便给他们模型吃一周一更新。开发组从年初加班到年尾仍然不散眼睛都望着array里不断新增的 [o1, o1-2024-12-17, o1-preview, o1-preview-2024-09-12, o1-mini, o1-mini-2024-09-12, gpt-4o, gpt-4o-2024-11-20, gpt-4o-2024-08-06, gpt-4o-2024-05-13, gpt-4o-audio-preview, gpt-4o-audio-preview-2024-10-01, gpt-4o-audio-preview-2024-12-17, gpt-4o-mini-audio-preview, gpt-4o-mini-audio-preview-2024-12-17, chatgpt-4o-latest, gpt-4o-mini, gpt-4o-mini-2024-07-18, gpt-4-turbo, gpt-4-turbo-2024-04-09, gpt-4-0125-preview, gpt-4-turbo-preview, gpt-4-1106-preview, gpt-4-vision-preview, gpt-4, gpt-4-0314, gpt-4-0613, gpt-4-32k, gpt-4-32k-0314, gpt-4-32k-0613, gpt-3.5-turbo, gpt-3.5-turbo-16k, gpt-3.5-turbo-0301, gpt-3.5-turbo-0613, gpt-3.5-turbo-1106, gpt-3.5-turbo-0125, gpt-3.5-turbo-16k-0613]。
OpenAI着了慌伸开五指将文档罩住弯腰下去说道“不多了我已经不多了。”直起身又看一看股价自己摇头说“不多不多!多乎哉?不多也。”于是这一群Prompt Engineer都在哭声里走散了。 OpenAI是这样的使人快活可是没有他别人也便这么过。vllmTGI部署个小模型当后端也不是不能用。
https://github.com/huggingface/text-generation-inferencehttps://github.com/huggingface/text-generation-inferencehttps://github.com/vllm-project/vllmhttps://github.com/vllm-project/vllm
谁曾想TGI基于conda而这玩意license不能给大组织商用 我知道AI多半是个杀猪盘但是没曾想屠夫和刀子都没动手甚至猪还没哼哼砧板第一个跳起来给了我一巴掌
Anaconda 许可变更解读https://www.datacamp.com/blog/navigating-anaconda-licensing
有一天大约是2024年圣诞前的两三天掌柜正在慢慢的定OKR取下粉板忽然说“OpenAI长久没有新东西了。”我才也觉得它的确长久没啥新闻了。
一个带着黑眼圈的人说道“它怎么没更新? ……他o1-pro了。”
掌柜说“哦!”
“它总仍旧是更新。这一回是自己卷竟连更12天。它家的新东西200刀一个月还只能Web访问用得起么?”
“后来怎么样?”“怎么样?先充钱后来是封号信用卡记录被老婆看到了再打折了腿。”
“后来呢?”“后来打折了腿了。”
“打折了怎样呢?”“怎样?……谁晓得?许是换用Llama了。”掌柜也不再问仍然慢慢的算他的帐。 圣诞过后东北风是一天凉比一天看看将近元旦;
我整天的靠着AI的火也须换开源模型了。
clone了一整天的模型没有一个能用的我正合了眼坐着。忽然间听得一个声音“试试这MOE吧。”
这声音虽然极低却很耳熟。看时又全没有人。站起来向外一望竟是Deepseek在微信群里悄悄发着自己的照片
它脸上全是benchmark已经看不出原本的样子;穿一件自研的大衣盘着两腿下面垫一个MOE用草绳在肩上挂住;见了我又说道“试一试MOE吧。”
掌柜也伸出头去一面说“新的开源模型么?训练成本才557.6万美元呢!”
Deepseek很疲惫的仰面答道“这v3不算新模型了……已经超过Llama 405B了。也赶上GPT-4o了性能算好的了。”
掌柜仍然同平常一样笑着对我说“你看又多了一个连部署都部署不起的模型”。但Deepseek这回却不十分分辩单说了一句“我在Huggingface上开源了!”
“开源? 那要不我们试试?支持Function call吗” Deepseek低声说道“支持支早就支持了……”他的眼色很像恳求我不要再细问问就是官方文档更新慢。
此时已经聚集了几个开发便去查看文档了。我重新配置了Chat-UI清空对话记录重置了MCP server。他从新人注册里面摸出了一个月的免费token放在我手里见他满手都是卡也不知是哪个哥布林洞穴里来的想必模型便是用这2000张卡炼出来。不一会我们调通了代码他便又在旁人的说笑声中去下一个交流群里了。 自此以后就没有再看其他模型了。到了年底掌柜取下粉板说“还有Llama 3.3呢!”到了第二天的中午又说“Mistral最近有更新么”到第三天又问“Qwen是不是也在推新模型”于是我狠狠心把这些都用vllm测了一遍。 我到现在终于差不多可以确定Chat-UI大概可以拿出来给大家用一用了。
https://github.com/AI-QL/chat-ui 帮忙点个赞吧https://github.com/AI-QL/chat-ui
正文
其实要把一个项目说清楚一篇短文或者回答是不够的。
然而我这人又不善言辞只好自欺欺人“一个纯粹的前端项目不需要用复杂的介绍来丰富的交互逻辑清晰满足基本功能需求就可以了。“
所以这里只是估摸着说一下基本的功能具体的代码解读等有时间再做吧。 配置
我开发部署后端的时候经常头疼没有一个前端可以用主要是后端的URL和model名称一直在变有时候又需要给别人展示直接curl太粗暴了所以Chat-UI里可以随意配置URL还可以通过Json文件快速导入写好的配置 Prompts 支持插入多个prompts会在messages里面帮你合并一起放到system role对应的text content里。这样可以测试不同提示词以及顺序对模型的影响。暂时用不上的但是已经写好的prompt可以放到backup里随时拖拽交换对比。 MD格式支持
可以支持Markdown语法显示比如Mermaid图和代码块 同时也可以一键复制文本或者显示原始文本。 历史记录 记录聊天历史可以点击载入或者下载并保存为Json文件也可以单独或批量删除。 多模态 可以支持图片多模态记得选择后端模型的时候要选择vision模型比如Llama vision或者Pixtral。 i18n 提供基本的多语言支持选了5种特殊字符比较多的语言有需要的同学可以自己加 MCP
可以作为渲染端对接 MCPModel Context ProtocolServers具体参考另一个项目
MCPModel Context Protocol模型上下文协议 实战篇1_mcp协议内容-CSDN博客文章浏览阅读2.6k次点赞70次收藏10次。MCP 协议Model Context Protocol模型上下文协议简单实战快速开发一个AI Agent APP_mcp协议内容https://ai-ql.blog.csdn.net/article/details/144324496
这样可以扩展更多agent功能以及function call Response兼容
对于一些正常OpenAI SDK兼容的后端都可以支持。对于一些特殊后端比如Cloudflare的 Workers AI 如下这种Rest API定义
{result: {response: Hello, World first appeared in 1974 at Bell Labs when Brian Kernighan included it in the C programming language example. It became widely used as a basic test program due to simplicity and clarity. It represents an inviting greeting from a program to the world.},success: true,errors: [],messages: []
}
或者python写的直接plain text返回的response也都可以兼容是的真的有这样的后端除非自己写一个不然真的找不到能支持这种离谱格式的玩意。
也可以勾选支持流式输出stream。
Cloudflare Pages
项目比较简单直接fork之后可以部署在自己的域名下如果不熟悉Cloudflare pages请查看链接:
https://developers.cloudflare.com/pageshttps://developers.cloudflare.com/pages
Docker
也提供直接Docker部署的镜像
Docker Image - AIQL/Chat-UIhttps://hub.docker.com/repository/docker/aiql/chat-ui/tags?page1orderinglast_updated
既然有了镜像所以默认可以支持其他容器化部署比如K8s或者在Huggingface上直接一行代码搞定
From aiql/chat-ui
https://huggingface.co/spaces/AI-QL/chat-uihttps://huggingface.co/spaces/AI-QL/chat-ui
这里也提供一个例子。 HTML
最后也是最推荐的用法可以直接在Github上下载 index.html双击打开即可不用安装也不用run。
https://github.com/AI-QL/chat-uihttps://github.com/AI-QL/chat-ui所有代码和部署教程已经同步至 GitHub 仓库如果觉得项目对你有帮助欢迎点个 ⭐️ 支持非常感谢