float32.app:现代 AI 驱动的搜索助手
float32 是一个基于大语言模型驱动的搜索助手,它可以帮助你快速找到你想要的答案。依赖 RAG 技术,float32 可以获取互联网信息以提供更准确的答复。
Tip
尝试一下 float32.app。 如果你对 float32 的 prompt 感兴趣,可以看看 📁 ./prompt/*.promptc。 里面的 .promptc 文件记录了你感兴趣的东西。
flowchart LR start(Query) agent(Agent) vdb[(Vector DB e.g. Milvus)] othr(Other) pt(Prompt Engineer) llm(LLM, ChatGPT) subgraph Global RAG / 全局 RAG subgraph User Defined RAG / 用户定义 RAG vdb ---> agent othr ---> agent end subgraph float32 Managed RAG / float32 托管 RAG translate(Translation) google(Google Search) translate ---> google db(float32 Managed DB i.e. MySQL) mvdb(float32 Managed Vector DB e.g. pgvector) end end start ---> translate start ---> agent start ---> db start ..-> mvdb db ---> pt mvdb ..-> pt google ---> pt agent ---> pt pt ---> llm float32.app 支持自托管,你可以在本地搭建一个 float32.app 服务。服务相关代码可以参考 backend/exec/svr/...
为了能运行,你需要
- OpenAI API 服务
必须。 包括 API Key 和 EndPoint(如适用) - Serper.dev 服务
必须。 用于获取搜索引擎结果。包括一个 API Key。 - MySQL 数据库
可选。 用于历史服务,如没有 MySQL 数据库,则历史服务/分享服务不可用。
.env 文件用于配置服务,你可以参考 backend/exec/svr/README.md 的描述与 backend/exec/svr/init.go 中的实现代码。
DEBUG=1# Optional. 1 or 0, 1 means debug mode on.LISTEN_ADDR=127.0.0.1:1145# Optional. default 0.0.0.0:8080DB_URL=mysql://root:root@localhost:3306/xxx# OptionalOPENAI=sk-xfeusx233fchwwe239430xxxxxxxxx# Mandatory. OpenAI API KeyOPENAI_ENDPOINT=http://localhost:5000# OptionalSERP_DEV=183fjcs92fwewefhwiu382d8uwjcncsk# Mandatory. serper.dev's API KEYALLOW_ORIGINS=https://float32.app# Optional, CORS, split by spacefloat32.app 使用 promptc 标准来实践 prompt 开发的解耦。请参阅 promptc.dev 与 promptc-go 获得更多信息。
所有 float32.app 使用的 prompt 都位于 prompt 目录下。它们包括:
code.promptc:代码相关 promptmed.promptc:医学相关的 prompt
目前所有的 prompt 是基于基础模板 base.promptc 使用 sed 与 generate.sh 生成的。
Warning
如果你是 macOS,则需要安装 gsed 以运行 generate.sh。
brew install gnu-sed前端使用 pnpm + React + Vite + MobX + TDesign 的结构。请使用以下命令以启动开发服务器:
cd frontend bash tdesign.sh # 获取 TDesign 资源 pnpm i pnpm dev