96SEO 2026-07-23 17:09 0
想象一下你手里有一本几百兆的《天龙八部》EPUB 电子书。再看如果你想问,“段誉到底会哪些武功? ”
这就是 RAG 的魅力。今天我们就通过三个主要文件,手把手实现这个流程。
本次 MVP 我们选用以下“黄金组合”:
.epub .Loader RecursiveCharacterTextSplitter @langchain/community EPUB @langchain/ .Embeddings @langchain/openai OpenAI RAG 的流程其实就两步:入库 和 查询 .
这是最耗时的一步. 需要把书"读"进去。切碎,变成向量,存进 Milvus.
向量数据库不像 MySQL那样随意建表,需要定义 Schema. 在 getBookCollection函数中,我们设计了如下字段:
(fields: ) )❯❯❯
)❯❯❯
) ) ) ) )❯❯❯
💡注意::dim 必须与你的 Embedding 模型输出维度一致.
电子书不能一次性塞进去,太大了.我们使用 LangChain 的 EPubLoader按章节加载,再用 RecursiveCharacterTextSplitter 按段落切分.
const loader = new EPubLoader;const documents = await loader.load;const textSplitter = new RecursiveCharacterTextSplitter({
chunkSize:500,chunkOverlap:50});),//遍历每一章,切分后生成向量for(let chapterIndex=;chapterIndex
这是"魔法"发生的地方.调用 OpenAI API将文本转为向量数组,接下来批量写入 Milvus.
//并发生成向量const insertData=await Promise.all(
chunks.map=>{ const vector=await getEmbedding;return {
id这方面,${bookId}_${chapterNum}_${index},content : chunk,vector。// ⭐存入vector }
})
)
await client.insert({ collectionname :
COLLECTIONNAME,data :
insertData });),)
)
)
)
)
此时控制台会打印出得分最高的几个片段,哪怕原文里没有"武功" 这两个字只要语义相近都能被搜出来!)
const context =
retrievedContent.map=>{
return :
${item.content};}).join,const prompt=` 你是一个专业的《天龙八部》小说助手.
请根据以下《天龙八部》小说片段内容回答问题:
:
${context}
:${question}
:
. 准确、详细符合原著情节.
. 不要胡编乱造.
适当引用原文.
AI回答这方面,`;
);
const model=new ChatOpenAI;const response= await model.invoke;console.log,//输出: 段誉主要学会了北冥神功、凌波微步还有六脉神剑...
);),
)
{});} catch{ console.error;
throw err,}} async function insertChunk sBatch{ if=>{ vect or await getEmbe ddin g;retu rn { i d `${bo okId}_ ${cha pte rNu m}_ ${chun kInd ex}`,bo ok_i d String。bo ok_n ame BOO K_N AME ch ap te r_n um cha pte rNu m ind ex chunk In dex co nt ent chu nk v ect or } }) );inser tResu lt aw ait cli ent.in sert;retu rn Nu mber ||;}} async functi on loadAndProc essEP ubStreamin g{ cons ole.log;load er new EP ubLoa der;documents await loade r.load;tex tSpli tte r new Re cursiv eCha racte rTex tSp litte r({
chunkSiz e CHUNK_SIZ E chunkOve rla p CH UN K_OVE RL AP }) let tota lInser ted;for(let chap terInd exe;chap terInd exe docume nts.leng th;chap terInd exe++) {
chap ter documents;cons ole.log;chunks aw ait tex tSpli tte.rsp litTex t;if(ch unks.l engt h=== continue;inse rt edCo unt aw ait inse rtChunk sBa tch;tot alInsert ed += inse rt edCou nt;cons ole.log;}
cons ole.log;}
async function mai n{ try{
await cli ent.conne ctPro mise;cons ole.log;boo kId,awa it ensur eb ookColle ction;怎么说呢,awa it lo adAn dProce ssE PUBS tre ami ng;}catch{
cons ole.error;}
mai n,);
🎰和未来展望 ## Through se three files we have completed complete loop of RAG system:
-
Unstructured data ->Structured vectors.
-
Natural language questions->Semantic matching->Accurate context.
-
Context+LLM->High-quality answers.
This is just MVP.The following can be added to commercial-grade development:
-
Hybrid retrieval keyword matching+vector retrieval more stable results.
-
Reorder:Re-order retrieved results again.
-
Multimodal not only search text but also images within book.
-
Permission management different users can only search ir uploaded books.
The vector database is no longer black technology it has become standard infrastructure for AI applications.Try it yourself and feed your knowledge base to AI!
Interactive topics ## Which books do you want to make such an AI assistant for?Welcome to comment below!老实说,
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback