FutureHouse Platform API Documentation
Last updated
Last updated
Documentation and tutorials for futurehouse-client, a client for interacting with endpoints of the FutureHouse platform.
FutureHouse client implements a RestClient (called FutureHouseClient
) with the following functionalities:
In the futurehouse platform, we define the deployed combination of an agent and an environment as a job
. To invoke a job, we need to submit a task
(also called a query
) to it.FutureHouseClient
can be used to submit tasks/queries to available jobs in the FutureHouse platform. Using a FutureHouseClient
instance, you can submit tasks to the platform by calling the create_task
method, which receives a TaskRequest
(or a dictionary with kwargs
) and returns the task id.
Aiming to make the submission of tasks as simple as possible, we have created a JobNames
enum
that contains the available task types.
The available supported jobs are:
JobNames.CROW
job-futurehouse-paperqa2
Fast Search
JobNames.FALCON
job-futurehouse-paperqa2-deep
Deep Search
Use a plethora of sources to deeply research. Receive a detailed, structured report as a response.
JobNames.OWL
job-futurehouse-hasanyone
Precedent Search
Formerly known as HasAnyone, query if anyone has ever done something in science.
JobNames.DUMMY
job-futurehouse-dummy
Dummy Task
This is a dummy task. Mainly for testing purposes.
Using JobNames
, the client automatically adapts the job name to the current stage.
The task submission looks like this:
TaskRequest
has the following fields:
id
UUID
Optional job identifier. A UUID will be generated if not provided
name
str
Name of the job to execute eg. job-futurehouse-paperqa2
, or using the JobNames
for convenience: JobNames.CROW
query
str
Query or task to be executed by the job
runtime_config
RuntimeConfig
Optional runtime parameters for the job
Once a task is submitted, you can retrieve it by calling the get_task
method, which receives a task id and returns a TaskResponse
object.
task_status
contains information about the task. For instance, its status
, task
, environment_name
and agent_name
, and other fields specific to the job.
A quickstart example can be found in the file, where we show how to submit and retrieve a job task, pass runtime configuration to the agent, and ask follow-up questions to the previous job.
: create_task(TaskRequest)
: get_task(task_id)
To create a FutureHouseClient
, you need to pass an FutureHouse platform api key (see ):
In order to use the FutureHouseClient
, you need to authenticate yourself. Authentication is done by providing an API key, which can be obtained directly from your .
Ask a question of scientific data sources, and receive a high-accuracy, cited response. Built with .
runtime_config
can receive a AgentConfig
object with the desired kwargs. Check the available AgentConfig
fields in the . Besides the AgentConfig
object, we can also pass timeout
and max_steps
to limit the execution time and the number of steps the agent can take.
Other especialised configurations are also available but are outside the scope of this documentation.
Once a task is submitted and the answer is returned, FutureHouse platform allow you to ask follow-up questions to the previous task.
It is also possible through the platform API.
To accomplish that, we can use the runtime_config
we discussed in the section.