import fire
from r2r import R2RBuilder, R2RConfig
from r2r.base.abstractions.llm import GenerationConfig
from r2r.main.assembly.factory_extensions import R2RPipeFactoryWithMultiSearch
def main(task_prompt_name="hyde", query="Who was aristotle?"):
# Load the configuration file
config = R2RConfig.from_json()
app = (
R2RBuilder(config)
.with_pipe_factory(R2RPipeFactoryWithMultiSearch)
.build(
# Add optional override arguments which propagate to the pipe factory
task_prompt_name=task_prompt_name,
)
)
# Run the RAG pipeline through the R2R application
result = app.rag(
query,
query_transform_generation_config=GenerationConfig(model="gpt-4o"),
rag_generation_config=GenerationConfig(model="gpt-3.5-turbo"),
)
print(f"Search Results:\n\n{result.search_results}")
print(f"RAG Results:\n\n{result.completion}")
if __name__ == "__main__":
fire.Fire(main)