ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

AgentScope嵌入模型完整指南:10行代码搭出语义检索知识库

AgentScope嵌入模型完整指南:10行代码搭出语义检索知识库 AgentScope嵌入模型完整指南10行代码搭出语义检索知识库【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope做客服机器人时用户问怎么退款关键词搜不出任何文档——因为文档里写的是退货流程。AgentScope 嵌入模型Embedding Model把文本变成向量让系统按语义相似度检索意思相近就能命中这是 RAG 类应用能跑通的第一步。 先给结论一句话嵌入模型把读懂文字这件事外包给向量你只需把文档存进知识库、用自然语言问相似内容自己排着队出来不用再手写关键词匹配逻辑。一次跑通最小示例拿到检索结果先装依赖uv pip install agentscope[rag]再配好环境变量DASHSCOPE_API_KEY。下面这段是核心流程的精简版能跑通入库 检索一次完整循环仓库里 examples/rag/index_and_search.py 是可直接执行的完整版装好就能python examples/rag/index_and_search.py运行from agentscope.credential import DashScopeCredential from agentscope.embedding import DashScopeEmbeddingModel from agentscope.rag import ApproxTokenChunker, KnowledgeBase, QdrantStore, TextParser store QdrantStore(location:memory:) async with store: model DashScopeEmbeddingModel( credentialDashScopeCredential(api_keysk-...), modeltext-embedding-v4, dimensions1024) kb KnowledgeBase(namedocs, description产品文档, embedding_modelmodel, vector_storestore, collectiondocs) chunks await ApproxTokenChunker(chunk_size256).chunk( await TextParser().parse(filebAgentScope是开源多智能体框架, filenamea.md)) await kb.insert_document(chunks) print(await kb.search(queries[什么是AgentScope], top_k2))向量库这里用的是内存版 Qdrant零配置要持久化或换 Milvus Lite、MongoDB、Elasticsearch只需替换store那一行其余代码不动。背后发生了什么一句话怎么变成检索结果把整个过程想成图书馆编目输入文档先经过解析器TextParser拆成段落再由ApproxTokenChunker切成固定大小的块块是索引的最小单位处理每个块发给嵌入模型模型返回一个固定长度的数字列表向量。语义相近的块向量在空间里靠得近。批量入库时框架会自动分批并发调用、失败重试这些脏活都封装在 src/agentscope/embedding/ 的统一接口EmbeddingModelBase里输出向量连同原文一起存进向量库。你提问时查询句也被转成同一个模型的向量库返回余弦相似度最高的前 k 个块——相似度就是语义距离的量化。上手后必调的3个参数向量维度怎么选dimensions决定向量长度。text-embedding-v4支持 642048 档默认 1024。维度越高表达越细但存储和检索成本也越高。新手直接用 1024短文本多的场景可以降到 512 省空间。注意一个硬约束建索引和查询必须用同一个维度向量库的 collection 按维度创建中途换维度等于重建。相似度阈值怎么调kb.search(..., score_threshold0.7)里的阈值控制宁缺毋滥还是宁滥毋缺。余弦相似度下通用场景从 0.60.7 起步结果里混入无关块就调高总查不全就调低。不传该参数则返回前 k 条不过滤。让重复计算不再花钱同一篇文档反复入库、同一段话反复嵌入都是在为同样的结果付两次 API 费用。框架内置文件缓存加一个参数即可from agentscope.embedding import FileEmbeddingCache # 初始化模型时传入 embedding_cacheFileEmbeddingCache(cache_dir./.cache/embeddings)命中缓存的请求不再走 API还能通过max_file_number、max_cache_size限制缓存目录膨胀实现细节见 src/agentscope/embedding/_file_cache.py。选型建议你的情况该选哪种嵌入模型都挂在同一套接口下切换只改初始化那几行。对照下面这张表挑适合谁在国内好不好用代表模型内容以中文为主、用国内云好阿里云原生DashScopetext-embedding-v4642048维可选内容以英文为主、已接入 OpenAI需要代理OpenAItext-embedding-3-large内网环境、数据不能出机房完全本地无外部依赖Ollama 本地模型如bge-m3判断顺序先问数据能不能出网再问内容语言最后才比维度参数。多模态需求图片、视频一起检索可看 DashScope 的qwen*-vl-embedding系列同一模型类会自动路由到多模态接口。回头看嵌入模型做的就一件事把理解语义的成本从每次检索挪到一次向量化。跑通本文示例后下一步建议把知识库挂到 Agent 上让智能体自己决定何时检索完整接法在 examples/rag/integrate_with_agent.py 里有两种模式自动注入和工具调用可以直接抄。【免费下载链接】agentscopeBuild and run agents you can see, understand and trust.项目地址: https://gitcode.com/GitHub_Trending/ag/agentscope创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进