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:8080
DB_URL=mysql://root:root@localhost:3306/xxx # Optional
OPENAI=sk-xfeusx233fchwwe239430xxxxxxxxx # Mandatory. OpenAI API Key
OPENAI_ENDPOINT=http://localhost:5000 # Optional
SERP_DEV=183fjcs92fwewefhwiu382d8uwjcncsk # Mandatory. serper.dev's API KEY
ALLOW_ORIGINS=https://float32.app # Optional, CORS, split by space
float32.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