跳转到主要内容
通过 ToolCallPipelineCall 两种方式,你可以在本地代码中直接调用 UltraRAG 的能力。

ToolCall

当你只需要 UltraRAG 的某个功能(例如数据加载、编码、检索等),不需要运行完整 Pipeline 时,可通过 ToolCall 以函数方式进行调用。
ToolCall 需要先使用 initialize 指定要启用的 Server。
server_root 推荐使用绝对路径,例如 /home/user/project/UltraRAG/servers
script/api_usage_example.py
from ultrarag.api import initialize, ToolCall


initialize(["benchmark"], server_root="servers") 

benchmark_param_dict = {
    "key_map":{
      "gt_ls": "golden_answers",
      "q_ls": "question"
    },
    "limit": -1,
    "seed": 42,
    "name": "nq",
    "path": "data/sample_nq_10.jsonl",
    
}
benchmark = ToolCall.benchmark.get_data(benchmark_param_dict)

使用方式与普通 Python 函数一致,按需传入对应参数即可。
script/api_usage_example.py
from ultrarag.api import initialize, ToolCall


initialize(["benchmark", "retriever"], server_root="servers") 

benchmark_param_dict = {
    "key_map":{
      "gt_ls": "golden_answers",
      "q_ls": "question"
    },
    "limit": -1,
    "seed": 42,
    "name": "nq",
    "path": "data/sample_nq_10.jsonl",
    
}
benchmark = ToolCall.benchmark.get_data(benchmark_param_dict)

query_list = benchmark['q_ls']


retriever_init_param_dict = {
    "model_name_or_path": "Qwen/Qwen3-Embedding-0.6B",
}

ToolCall.retriever.retriever_init(
    **retriever_init_param_dict
)

result = ToolCall.retriever.retriever_search(
    query_list=query_list,
    top_k=5,
)

retrieve_passages = result['ret_psg']

只需传入你希望修改的参数,其他参数会自动从 Server 的默认参数文件补全。

PipelineCall

如果你希望在本地直接运行一整个 UltraRAG Pipeline,并获得全部步骤的执行结果,可以使用 PipelineCall
你需要先通过 UR-v2 的 build 功能生成对应 Pipeline 的 pipeline_parameter.yaml 与参数文件。
script/api_usage_example.py
from ultrarag.api import PipelineCall

result = PipelineCall(
    pipeline_file="examples/rag_deploy.yaml",
    parameter_file="examples/parameter/rag_deploy_parameter.yaml",
)

final_step_result = result['final_result']
all_steps_result = result['all_results']

final_result 为 Pipeline 最后一个步骤的运行结果,all_steps_result 则包含所有步骤的运行结果。