OpenAPIConnector
OpenAPIConnector 是一个组件,充当 Haystack 生态系统与 OpenAPI 服务之间的接口。
| pipeline 中的最常见位置 | 在任何地方,在为 run 参数提供输入的组件之后 |
| 必需的初始化变量 | "openapi_spec": 服务的 OpenAPI 规范。可以是 URL、文件路径或原始字符串。 |
| 强制运行变量 | "operation_id": 要调用的 OpenAPI 规范中的 operationId。 |
| 输出变量 | “response”:REST 服务响应 |
| API 参考 | Connectors (连接器) |
| GitHub 链接 | https://github.com/deepset-ai/haystack/blob/main/haystack/components/connectors/openapi.py |
概述
该OpenAPIConnector 是 Haystack 生态系统中的一个组件,允许直接调用 OpenAPI(以前称为 Swagger)规范中定义的 REST 端点。它充当 Haystack 管道和任何遵循 OpenAPI 标准的 REST API 之间的桥梁,支持动态方法调用、身份验证和参数处理。
要使用OpenAPIConnector,请确保您已安装openapi-llm 依赖项
pip install openapi-llm
与 OpenAPIServiceConnector 不同,后者与 LLM 配合使用,OpenAPIConnector 直接使用显式输入参数调用 REST 端点。
用法
单独使用
您可以初始化并单独使用OpenAPIConnector,方法是传递 OpenAPI 规范和其他参数
from haystack.utils import Secret
from haystack.components.connectors.openapi import OpenAPIConnector
connector = OpenAPIConnector(
openapi_spec="https://bit.ly/serperdev_openapi",
credentials=Secret.from_env_var("SERPERDEV_API_KEY"),
service_kwargs={"config_factory": my_custom_config_factory}
)
response = connector.run(
operation_id="search",
arguments={"q": "Who was Nikola Tesla?"}
)
输出
该OpenAPIConnector 返回一个包含服务响应的字典
{
"response": { // here goes REST endpoint response JSON
}
}
在 pipeline 中
该OpenAPIConnector 可以集成到 Haystack 管道中以与 OpenAPI 服务进行交互。例如,您可以将OpenAPIConnector 连接到管道
from haystack import Pipeline
from haystack.components.connectors.openapi import OpenAPIConnector
from haystack.dataclasses.chat_message import ChatMessage
from haystack.utils import Secret
# Initialize the OpenAPIConnector
connector = OpenAPIConnector(
openapi_spec="https://bit.ly/serperdev_openapi",
credentials=Secret.from_env_var("SERPERDEV_API_KEY")
)
# Create a ChatMessage from the user
user_message = ChatMessage.from_user(text="Who was Nikola Tesla?")
# Define the pipeline
pipeline = Pipeline()
pipeline.add_component("openapi_connector", connector)
# Run the pipeline
response = pipeline.run(
data={"openapi_connector": {"operation_id": "search", "arguments": {"q": user_message.text}}}
)
# Extract the answer from the response
answer = response.get("openapi_connector", {}).get("response", {})
print(answer)
更新于 8 个月前
