|
ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;display: table;border-bottom: 2px solid rgb(15, 76, 129);color: rgb(63, 63, 63);visibility: visible;">引言 LlamaIndex,将企业数据转化为生产级别的 LLM 应用。它具有以下主要特点: 数据集成:支持 160 多种数据源,包括非结构化、半结构化和结构化数据。可以无缝地将各种数据源集成到 LLM 应用中 索引:存储和索引数据,以满足不同的使用场景。LlamaIndex 可以与 40 多种向量存储、文档存储、图形存储和 SQL 数据库进行集成 查询:编排从prompt chain,RAG,agent的工作流 评估:提供全面的模块套件,用于评估LLM 应用的性能 ingFang SC", Cambria, Cochin, Georgia, Times, "Times New Roman", serif;border-left: 3px solid rgb(15, 76, 129);color: rgb(63, 63, 63);">实现方式我们基于本地Obisidian笔记软件,构建一个私有的QA知识库。Obsidian是一款markdown笔记软件,markdown文件完全本地化,完全自主可控。# 安装依赖pip install llama_index pyvis
#导入包from llama_index import (ObsidianReader,#这个太赞了,可直接读obsidian文件 LLMPredictor, ServiceContext, KnowledgeGraphIndex,)
from llama_index.graph_stores import SimpleGraphStorefrom llama_index.storage.storage_context import StorageContextfrom llama_index.llms import OpenAI
filepath='/path/to/your/obsidian/vault'
#初始化contextuse_context = { "temperature": 0,"model":"选择一个model,huggingface上找一个就行", "chunk_size": 512}
documents = ObsidianReader(filepath).load_data()llm = OpenAI(temperature=use_context['temperature'], model=use_context['model'])service_context = ServiceContext.from_defaults(llm=llm, chunk_size=use_context['chunk_size'])
graph_store = SimpleGraphStore()storage_context = StorageContext.from_defaults(graph_store=graph_store)
#构建知识图谱indexindex = KnowledgeGraphIndex.from_documents( documents=documents, max_triplets_per_chunk=2, storage_context=storage_context, service_context=service_context, include_embeddings=True,)
#搞定,你可以实验一下跑的结果query="写一段提示词,可以跟你本地的markdown文件内容相关的问题"query_engine = index.as_query_engine( include_text=True, response_mode="tree_summarize", embedding_mode="hybrid", similarity_top_k=5,)
response = query_engine.query(query)
以上是一个简单的实现示例,实际应用中,可能需要根据情况进行调整和优化。
|