01.
02.
Naive RAG上述痛点的原因03.
从RAG到Agentic RAG04.
实践SentenceWindowNodeParser分段之后,导入到Milvus。node_parser=SentenceWindowNodeParser.from_defaults(
window_size=3,
window_metadata_key="window",
original_text_metadata_key="original_text",
)
#Extractnodesfromdocuments
nodes=node_parser.get_nodes_from_documents(documents)
vector_store=MilvusVectorStore(dim=1536,
uri="http://localhost:19530",
collection_name='agentic_rag',
overwrite=True,
enable_sparse=False,
hybrid_ranker="RRFRanker",
hybrid_ranker_params={"k":60})
storage_context=StorageContext.from_defaults(vector_store=vector_store)
index=VectorStoreIndex(
nodes,
storage_context=storage_context
)
SummaryIndex 对于文档块提取summary。defvector_query(
query:str,
page_numbers:Optional[List[int]]=None
)->str:
#Thetargetkeydefaultsto`window`tomatchthenode_parser'sdefault
postproc=MetadataReplacementPostProcessor(
target_metadata_key="window"
)
#BAAI/bge-reranker-baseisacross-encodermodel
#link:https://huggingface.co/BAAI/bge-reranker-base
rerank=BGERerankFunction(
top_n=3,
model_name="BAAI/bge-reranker-base",
device="cpu"
)
#TheQueryEngineclassisequippedwiththegeneratorandfacilitatestheretrievalandgenerationsteps
query_engine=vector_index.as_query_engine(
similarity_top_k=3,
vector_store_query_mode="hybrid",#Milvusstartssupportingfromversion2.4,use'Default'forversionsbefore2.4
node_postprocessors=[postproc,rerank],
)
response=query_engine.query(query)
returnresponse
vector_query_tool=FunctionTool.from_defaults(
name=f"vector_tool_{name}",
fn=vector_query
)
summary_index=SummaryIndex(nodes)
summary_query_engine=summary_index.as_query_engine(
response_mode="tree_summarize",
use_async=True,
)
summary_tool=QueryEngineTool.from_defaults(
name=f"summary_tool_{name}",
query_engine=summary_query_engine,
description=(
f"Usefulforsummarizationquestionsrelatedto{name}"
),
)
ReActAgentWorker整合vector query tool 和summary tool,以及React的特性,反思,路由以及使用工具能力,实现Agentic RAG。response=agent.query(
"Tellmeaboutthedifferencebetweenmilvus2.3andmilvus2.4?"
)
Thought:TheuserisaskingaboutthedifferencesbetweenMilvus2.3andMilvus2.4.Ineedtogatherinformationaboutbothversionstoprovideacomprehensivecomparison.
Action:vector_tool_milvus_2_3
ActionInput:{'query':"What'snewinMilvus2.3?"}
Thought:Itappearsthereisapersistentissuewiththetoolinput.Iwilltryusingadifferenttooltogatherthenecessaryinformation.
Action:summary_tool_milvus_2_3
ActionInput:{'input':"What'snewinMilvus2.3?"}
Observation:Milvus2.3introducesseveralnewfeaturesandenhancements,includingGPUsupport,Arm64support,arefactoredQueryNode,andamergedIndexCoordandDataCoordforsimplifieddeployment.ItalsoincludesanewNATS-basedmessagequeue,upsertAPI,rangesearch,countstatement,cosinemetrics,rawvectorsinsearchreturns,ScaNNindexsupport,iteratorfunctionality,JSON_CONTAINSexpressions,andCDCsupport.Additionally,thereareperformanceimprovementssuchasMMapforcapacityincrease,optimizeddatafiltering,growingindex,andincreasedresourceusageinmulti-coreenvironments.Thereleasealsofeaturesanewloadbalancer,dynamicconfigurationsupport,tracingsupport,reorganizederrorcodes,andupgradedtoolslikeBirdwatcherandAttu.
Thought:IhavegatheredinformationaboutthenewfeaturesandenhancementsinMilvus2.3.Now,IneedtogathersimilarinformationforMilvus2.4tocomparethetwoversions.
Action:summary_tool_milvus_2_4
ActionInput:{'input':"What'snewinMilvus2.4?"}
Observation:Milvus2.4introducesseveralnewfeaturesandimprovements.Keyhighlightsinclude:
...
Theseupdatesaimtoenhancesystemperformance,improveobservability,andstreamlinethecodebaseforincreasedsimplicity.
Thought:InowhavedetailedinformationaboutthenewfeaturesandenhancementsinbothMilvus2.3andMilvus2.4.Icancomparethetwoversionsbasedonthesedetails.
Answer:Milvus2.3andMilvus2.4bothintroducesignificantnewfeaturesandimprovements,buttheyfocusondifferentaspectsofthesystem.Herearethekeydifferences:
###Milvus2.3:
1.**GPUandArm64Support**:IntroducesGPUsupportandArm64support.
2.**RefactoredQueryNode**:SimplifiesdeploymentbymergingIndexCoordandDataCoord.
3.**NewMessageQueue**:ImplementsaNATS-basedmessagequeue.
4.**NewAPIsandFeatures**:IncludesupsertAPI,rangesearch,countstatement,cosinemetrics,rawvectorsinsearchreturns,ScaNNindexsupport,iteratorfunctionality,JSON_CONTAINSexpressions,andCDCsupport.
5.**PerformanceImprovements**:FeaturesMMapforcapacityincrease,optimizeddatafiltering,growingindex,andincreasedresourceusageinmulti-coreenvironments.
6.**LoadBalancerandDynamicConfiguration**:Introducesanewloadbalanceranddynamicconfigurationsupport.
7.**ToolUpgrades**:UpgradestoolslikeBirdwatcherandAttu.
###Milvus2.4:
1.**NewGPUIndex-CAGRA**:Introducesastate-of-the-artGPU-basedgraphindexforsignificantperformanceboosts.
2.**Multi-vectorandHybridSearch**:Supportsstoringvectorembeddingsfrommultiplemodelsandconductinghybridsearches.
3.**SparseVectors**:Supportsefficientapproximatesemanticnearestneighborsearchforkeywordinterpretationandanalysis.
4.**GroupingSearch**:Allowsaggregationofsearchresultsbyspecificscalarfields.
5.**InvertedIndexandFuzzyMatch**:Improvesscalarqueryperformanceandsupportsfuzzymatches.
6.**NewDataTypes**:SupportsFloat16andBFloat16vectordatatypes.
7.**L0Segment**:Enhancesperformanceofdeleteandupsertoperationsbyrecordingdeleteddata.
8.**RefactoredBulkInsert**:Improveslogicforimportingmultiplefilesinasinglerequest.
9.**Memory-mappedStorage**:Optimizesmemoryusagebymappingfilecontentintomemory.
10.**Milvus-CDC**:Improvesstabilityforcapturingandsynchronizingincrementaldata.
###Summary:
-**Milvus2.3**focusesonbroadeninghardwaresupport,enhancingdeploymentsimplicity,andintroducingvariousnewAPIsandperformanceimprovements.
-**Milvus2.4**emphasizesadvancedsearchcapabilities,newdatatypes,improvedmemorymanagement,andfurtherperformanceoptimizations.
Bothversionsaimtoenhancesystemperformanceandusability,butMilvus2.4introducesmoreadvancedsearchfeaturesandoptimizationscomparedtoMilvus2.3.
05.
| 欢迎光临 链载Ai (https://www.lianzai.com/) | Powered by Discuz! X3.5 |