集成:OPEA
使用 OPEA 框架进行硬件抽象和编排
目录
概述
haystack-opea 集成将 Haystack 连接到 OPEA — 一系列用于 LLM、嵌入、检索和重排的容器化微服务。通过将繁重的计算委托给 OPEA 服务,您可以构建灵活的检索增强生成 (RAG) 流水线,这些流水线可以跨云、本地和边缘部署进行扩展。
主要特点
- 与硬件无关的 LLM 和嵌入服务。
- 轻松编排 LLM、嵌入器、检索器、重排器等。
- 支持通过 Docker Compose 或生产集群进行本地开发。
安装
从源代码安装
git clone https://github.com/opea-project/Haystack-OPEA.git
cd Haystack-OPEA
pip install poetry
poetry install --with test
使用
以下是嵌入和 LLM 生成的快速入门示例。请确保您的 OPEA 后端正在运行:例如,通过提供的 Docker Compose 文件。OPEA 服务可以配置为使用各种模型服务后端,如 TGI、vLLM、ollama、OVMS……并提供经过验证的运行时设置,以便在包括 Intel Gaudi 在内的各种硬件上获得良好性能,请参阅 OPEA 组件库中的 LLM 部分。
嵌入
from haystack import Document
from haystack_opea import OPEATextEmbedder, OPEADocumentEmbedder
# Text embedding example
text_embedder = OPEATextEmbedder(api_url="https://:6006")
text_embedder.warm_up()
result = text_embedder.run("I love pizza!")
print("Text embedding:", result["vectors"][0])
# Document embedding example
doc = Document(content="I love pizza!")
doc_embedder = OPEADocumentEmbedder(api_url="https://:6006")
doc_embedder.warm_up()
out = doc_embedder.run([doc])
print("Document embedding:", out["documents"][0].embedding)
LLM 生成
from haystack_opea import OPEAGenerator
# Initialize the OPEA LLM service
generator = OPEAGenerator(
api_url="https://:9009",
model_arguments={
"temperature": 0.2,
"top_p": 0.7,
"max_tokens": 512,
},
)
generator.warm_up()
# Run a simple prompt
response = generator.run(prompt="What is the capital of France?")
print("LLM reply:", response["replies"][0])
有关更多示例,请参阅 samples/ 文件夹和 官方 OPEA 文档,以及 组件库。
