常见问题 (FAQ)#
提示
如果您还没有,请安装 LlamaIndex 并完成入门教程。如果您遇到不认识的术语,请查看高级概念。
在本节中,我们将从您为入门示例编写的代码开始,向您展示根据您的用例进行定制的最常见方法
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
“我想将我的文档解析成更小的块”#
# Global settings
from llama_index.core import Settings
Settings.chunk_size = 512
# Local settings
from llama_index.core.node_parser import SentenceSplitter
index = VectorStoreIndex.from_documents(
documents, transformations=[SentenceSplitter(chunk_size=512)]
)
“我想使用不同的向量存储”#
首先,您可以安装您想要使用的向量存储。例如,要使用 Chroma 作为向量存储,您可以使用 pip 安装它
pip install llama-index-vector-stores-chroma
要了解更多关于所有可用集成的信息,请查看 LlamaHub。
然后,您可以在代码中使用它
import chromadb
from llama_index.vector_stores.chroma import ChromaVectorStore
from llama_index.core import StorageContext
chroma_client = chromadb.PersistentClient()
chroma_collection = chroma_client.create_collection("quickstart")
vector_store = ChromaVectorStore(chroma_collection=chroma_collection)
storage_context = StorageContext.from_defaults(vector_store=vector_store)
StorageContext
定义了文档、嵌入和索引的存储后端。您可以了解更多关于存储和如何定制它的信息。
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(
documents, storage_context=storage_context
)
query_engine = index.as_query_engine()
response = query_engine.query("What did the author do growing up?")
print(response)
"我想在查询时检索更多上下文"#
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(similarity_top_k=5)
response = query_engine.query("What did the author do growing up?")
print(response)
as_query_engine
在索引之上构建默认的 retriever
(检索器)和 query engine
(查询引擎)。您可以通过传入关键字参数来配置检索器和查询引擎。在这里,我们将检索器配置为返回前 5 个最相似的文档(而不是默认的 2 个)。您可以了解更多关于检索器和查询引擎的信息。
"我想使用不同的 LLM"#
# Global settings
from llama_index.core import Settings
from llama_index.llms.ollama import Ollama
Settings.llm = Ollama(model="mistral", request_timeout=60.0)
# Local settings
index.as_query_engine(llm=Ollama(model="mistral", request_timeout=60.0))
您可以了解更多关于自定义 LLMs 的信息。
"我想使用不同的响应模式"#
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(response_mode="tree_summarize")
response = query_engine.query("What did the author do growing up?")
print(response)
"我想流式传输响应"#
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_query_engine(streaming=True)
response = query_engine.query("What did the author do growing up?")
response.print_response_stream()
您可以了解更多关于流式传输响应 的信息。
"我想要一个聊天机器人而不是问答系统"#
from llama_index.core import VectorStoreIndex, SimpleDirectoryReader
documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)
query_engine = index.as_chat_engine()
response = query_engine.chat("What did the author do growing up?")
print(response)
response = query_engine.chat("Oh interesting, tell me more.")
print(response)
了解更多关于聊天引擎 的信息。
后续步骤#
- 想深入了解(几乎)所有可配置项吗?从理解 LlamaIndex 开始吧。
- 想更深入地理解特定模块?请查看组件指南。