
如何用 Milvus 二值量化与 Groq 在 Beam Cloud 部署低延迟 RAG 应用【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub如果你需要把一个「上传 PDF → 向量检索 → 大模型回答」的 RAG 应用部署到云端 serverless 环境并拿到公网访问链接仓库中的 fastest-rag-milvus-groq 目录提供了一条完整可执行的路径用 Milvus 的二值向量索引做检索用 Groq 上运行的 Kimi K2 做生成再用 Beam 一条命令把 Streamlit 应用部署上线。README 给出的性能定位是「检索延迟 15ms」。前提条件本地 Python 3.11 或更高版本、一个 Groq API key、一个 Beam 账号。部署前先确认这套技术栈的分工组件在本应用中的角色LlamaIndex编排 RAG 流程加载 PDF、embedding、检索、提示词组装Milvus二值向量索引与存储BINARY_VECTOR字段、BIN_FLAT索引、HAMMING度量Groq推理引擎运行 MoonshotAI 的 Kimi K2代码中模型名为moonshotai/kimi-k2-instructBeam超快 serverless 部署平台与常规浮点向量 RAG 的关键区别在 rag.py 里EmbedData._binary_quantize把 float32 embedding 按「大于 0 记 1、否则记 0」压成 0/1 位向量再用np.packbits每 8 个维度打包进 1 个字节以DataType.BINARY_VECTOR写入 Milvus查询时查询向量做同样的二值化用 HAMMING 距离检索之后由代码把距离换算成相似度分数1.0 / (1.0 distance)返回。理解这一点有助于你判断这套栈的适用边界它用检索精度换取更小的存储和更快的检索。准备环境Python、uv 依赖、Groq 与 Beam 配置1. 安装 uv 并初始化项目。README 要求系统已安装 Python 3.11 或更高版本然后按平台安装 uv# MacOS/Linux curl -LsSf https://astral.sh/uv/install.sh | sh # Windows powershell -ExecutionPolicy ByPass -c irm https://astral.sh/uv/install.ps1 | iex随后按 README 新建项目、建虚拟环境并安装依赖。应用代码就是仓库fastest-rag-milvus-groq目录下的 app.py、rag.py、start_server.py需要与这些命令在同一项目目录中使用# Create a new directory for our project uv init fastest-rag cd fastest-rag # Create virtual environment and activate it uv venv source .venv/bin/activate # MacOS/Linux # Install dependencies uv add pymilvus llama-index llama-index-embeddings-huggingface llama-index-llms-groq streamlit beam-client2. 配置 Groq key。从 Groq 控制台获取 API key按 README 写入项目根目录的.env文件仓库中的 .env.example 给出了同样的模板。下面代码块中的YOUR_GROQ_API_KEY需替换为你自己的 keyGROQ_API_KEYYOUR_GROQ_API_KEYapp.py启动时会load_dotenv()读取该变量作为侧边栏 Groq key 输入框的默认值。3. 注册 Beam。访问 Beam 官网注册注册后默认 token 会自动生成。然后在终端用你的 beam token 完成注册YOUR_BEAM_TOKEN替换为你的 tokenbeam configure default --token YOUR_BEAM_TOKEN执行部署python start_server.py配置完成后在项目目录中运行python start_server.py.beamignore 已由 Beam SDK 生成在目录中用于指定上传时排除的文件部署前无需手动处理。这条命令背后发生的事全部定义在 start_server.py 里部署前建议先确认这些参数是否符合预期from beam import Image, Pod streamlit_server Pod( imageImage().add_python_packages([ streamlit, pymilvus, llama-index, llama-index-embeddings-huggingface, llama-index-llms-groq ]), ports[8501], # Default port for streamlit gpuT4, memory2Gi, entrypoint[streamlit, run, app.py], ) res streamlit_server.create() print(✨ Streamlit server hosted at:, res.url)几个值得注意的取值Pod 在 Beam 侧单独声明了运行所需的 Python 包因此云端不需要你本地的虚拟环境监听 Streamlit 默认的 8501 端口分配 T4 GPU 与 2Gi 内存启动命令即streamlit run app.py。文件中还有一行被注释掉的cpu4源文件未启用按文件原样保持即可。streamlit_server.create()执行成功后终端会打印文档给出的输出格式示例结果✨ Streamlit server hosted at: Beam 生成的访问 URL验证部署结果1. 打开链接确认服务在线。复制终端打印的 URL直接通过浏览器访问页面应是 Streamlit 聊天界面左侧侧边栏有「Add your documents!」上传区。2. 完成一次完整的「索引 → 问答」流程。按界面提示操作在侧边栏 Groq key 输入框填入 API key若.env已配置此处会预填文档界面说明中也标注了 key 来自 Groq 控制台。只上传文件而没填 key 时界面会提示「Please enter your Groq API key to process the document.」上传一个.pdf文件代码中required_exts[.pdf]仅接受 PDF。若 PDF 无法提取出文本界面会报错「No text could be extracted from the PDF.」索引过程会依次显示「Generating embeddings…」「Creating vector index…」「Storing in vector DB…」「Creating query engine…」进度完成后显示「✅ Ready to Chat!」3. 核对检索延迟。提问后回答流式输出的下方会显示一行实测检索耗时⏱️ Retrieval time: 实际毫秒数 ms这是 app.py 用time.perf_counter()包住generate_context计时后渲染的可用于对照 README 提出的「retrieval latency 15ms」定位判断你的文档规模下检索是否符合预期。可选分支本地运行。如果只想在本地验证应用而不部署README 给出的替代命令是streamlit run app.py功能流程与云端版本一致区别只是运行环境。运行参数与适用边界以下取值都来自源码调整前需要先确认对应文档或行为会话隔离app.py为每个浏览器会话生成docs_session_id集合名Milvus Lite 的本地库文件放在系统临时目录milvus_session_id.db不同用户互不共享索引docs/目录下的 raft.pdf 可用作测试文档。向量维度自动探测embedding 模型固定为BAAI/bge-large-en-v1.5但代码用一次测试 embedding 探测实际维度后建表不需要手动填vector_dim。Groq 生成参数rag.py 中RAG._setup_llm固定temperature0.4、max_tokens1000缺少 key 时会直接抛出ValueError提示设置GROQ_API_KEY。低延迟的来源检索侧靠二值向量 BIN_FLAT/HAMMING生成侧靠 Groq 推理「 15ms」是 README 对该技术栈的表述页面显示的毫秒数是每次查询的实测值不要把它当成固定预期。部署完成的判定标准就是三步create()成功打印访问 URL、浏览器能打开聊天界面、上传 PDF 后能收到流式回答并看到实测检索耗时。若部署卡住优先回查.env中的GROQ_API_KEY与beam configure的 token 是否已正确写入。【免费下载链接】ai-engineering-hubIn-depth tutorials on LLMs, RAGs and real-world AI agent applications.项目地址: https://gitcode.com/GitHub_Trending/ai/ai-engineering-hub创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考