/float32

float32.app 是一个大语言模型驱动的搜索助手,它可以帮助你快速找到你想要的答案。依赖 RAG 技术,float32 可以获取互联网信息以提供更准确的答复。

Primary LanguageGoMIT LicenseMIT

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

Loading

Acknowledged

Note

Limit-LAB logo This project is affiliated to Limit-LAB.
Special thanks to @ZincCat.

Server 端

float32.app 支持自托管,你可以在本地搭建一个 float32.app 服务。服务相关代码可以参考 backend/exec/svr/...

为了能运行,你需要

  • OpenAI API 服务
    必须。 包括 API Key 和 EndPoint(如适用)
  • Serper.dev 服务
    必须。 用于获取搜索引擎结果。包括一个 API Key。
  • MySQL 数据库
    可选。 用于历史服务,如没有 MySQL 数据库,则历史服务/分享服务不可用。

Tip

一键部署?试试看 deploy.sh

bash deploy.sh

.env 文件

.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

Prompt 与 PromptC 文件

float32.app 使用 promptc 标准来实践 prompt 开发的解耦。请参阅 promptc.devpromptc-go 获得更多信息。

所有 float32.app 使用的 prompt 都位于 prompt 目录下。它们包括:

目前所有的 prompt 是基于基础模板 base.promptc 使用 sedgenerate.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