literalai.api.__init__

LiteralAPI Objects

class LiteralAPI(BaseLiteralAPI)

make_gql_call

def make_gql_call(description: str, query: str, variables: Dict[str,
                                                                Any]) -> Dict

Executes a GraphQL call with the provided query and variables.

Arguments:

  • description str - Description of the GraphQL operation for logging purposes.
  • query str - The GraphQL query to be executed.
  • variables Dict[str, Any] - Variables required for the GraphQL query.

Returns:

  • Dict - The JSON response from the GraphQL endpoint.

Raises:

  • Exception - If the GraphQL call fails or returns errors.

make_rest_call

def make_rest_call(subpath: str, body: Dict[str, Any]) -> Dict

Executes a REST API call to the specified subpath with the given body.

Arguments:

  • subpath str - The subpath of the REST API endpoint.
  • body Dict[str, Any] - The JSON body to send with the POST request.

Returns:

  • Dict - The JSON response from the REST API endpoint.

gql_helper

def gql_helper(query: str, description: str, variables: Dict,
               process_response: Callable[..., R]) -> R

Helper function to make a GraphQL call and process the response.

Arguments:

  • query str - The GraphQL query to execute.
  • description str - Description of the GraphQL operation for logging purposes.
  • variables Dict - Variables required for the GraphQL query.
  • process_response Callable[…, R] - A function to process the response.

Returns:

  • R - The result of processing the response.

get_users

def get_users(first: Optional[int] = None,
              after: Optional[str] = None,
              before: Optional[str] = None,
              filters: Optional[users_filters] = None)

Retrieves a list of users based on pagination and optional filters.

Arguments:

  • first Optional[int] - The number of users to retrieve.
  • after Optional[str] - A cursor for use in pagination, fetching records after this cursor.
  • before Optional[str] - A cursor for use in pagination, fetching records before this cursor.
  • filters Optional[users_filters] - Filters to apply to the user query.

Returns:

  • Dict - A dictionary containing the queried user data.

get_user

def get_user(id: Optional[str] = None, identifier: Optional[str] = None)

Retrieves a user based on the provided ID or identifier.

Arguments:

  • id Optional[str] - The unique ID of the user.
  • identifier Optional[str] - A unique identifier for the user, such as a username or email.

Returns:

The user data as returned by the GraphQL helper function.

create_user

def create_user(identifier: str, metadata: Optional[Dict] = None)

Creates a new user with the specified identifier and optional metadata.

Arguments:

  • identifier str - A unique identifier for the user, such as a username or email.
  • metadata Optional[Dict] - Additional data associated with the user.

Returns:

The result of the GraphQL call to create a user.

update_user

def update_user(id: str,
                identifier: Optional[str] = None,
                metadata: Optional[Dict] = None)

Updates an existing user identified by the given ID, with optional new identifier and metadata.

Arguments:

  • id str - The unique ID of the user to update.
  • identifier Optional[str] - A new identifier for the user, such as a username or email.
  • metadata Optional[Dict] - New or updated metadata for the user.

Returns:

The result of the GraphQL call to update the user.

delete_user

def delete_user(id: str)

Deletes a user identified by the given ID.

Arguments:

  • id str - The unique ID of the user to delete.

Returns:

The result of the GraphQL call to delete the user.

get_or_create_user

def get_or_create_user(identifier: str, metadata: Optional[Dict] = None)

Retrieves a user by their identifier, or creates a new user if they do not exist.

Arguments:

  • identifier str - The identifier of the user to retrieve or create.
  • metadata Optional[Dict] - Metadata to associate with the user if they are created.

Returns:

The existing or newly created user data.

get_threads

def get_threads(first: Optional[int] = None,
                after: Optional[str] = None,
                before: Optional[str] = None,
                filters: Optional[threads_filters] = None,
                order_by: Optional[threads_order_by] = None,
                step_types_to_keep: Optional[List[StepType]] = None)

Fetches a list of threads based on pagination and optional filters.

Arguments:

  • first Optional[int] - Number of threads to fetch.
  • after Optional[str] - Cursor for pagination, fetch threads after this cursor.
  • before Optional[str] - Cursor for pagination, fetch threads before this cursor.
  • filters Optional[threads_filters] - Filters to apply on the threads query.
  • order_by Optional[threads_order_by] - Order by clause for threads.

Returns:

A list of threads that match the criteria.

list_threads

def list_threads(first: Optional[int] = None,
                 after: Optional[str] = None,
                 before: Optional[str] = None,
                 filters: Optional[threads_filters] = None,
                 order_by: Optional[threads_order_by] = None)

Lists threads based on pagination and optional filters, similar to get_threads but may include additional processing.

from literalai.thread import DateTimeFilter, ThreadFilter

filters = ThreadFilter(
    createdAt=DateTimeFilter(operator="gt", value="2023-12-14"),
)

page = 1
result = literal_client.api.list_threads(filters=filters)

Arguments:

  • first Optional[int] - Number of threads to list.
  • after Optional[str] - Cursor for pagination, list threads after this cursor.
  • before Optional[str] - Cursor for pagination, list threads before this cursor.
  • filters Optional[threads_filters] - Filters to apply on the threads listing.
  • order_by Optional[threads_order_by] - Order by clause for threads.

Returns:

A list of threads that match the criteria.

get_thread

def get_thread(id: str)

Retrieves a single thread by its ID.

Arguments:

  • id str - The unique identifier of the thread.

Returns:

The thread corresponding to the provided ID.

create_thread

def create_thread(name: Optional[str] = None,
                  metadata: Optional[Dict] = None,
                  participant_id: Optional[str] = None,
                  environment: Optional[str] = None,
                  tags: Optional[List[str]] = None)

Creates a new thread with the specified details.

Arguments:

  • name Optional[str] - Name of the thread.
  • metadata Optional[Dict] - Metadata associated with the thread.
  • participant_id Optional[str] - Identifier for the participant.
  • environment Optional[str] - Environment in which the thread operates.
  • tags Optional[List[str]] - List of tags associated with the thread.

Returns:

The newly created thread.

upsert_thread

def upsert_thread(id: str,
                  name: Optional[str] = None,
                  metadata: Optional[Dict] = None,
                  participant_id: Optional[str] = None,
                  environment: Optional[str] = None,
                  tags: Optional[List[str]] = None)

Updates an existing thread or creates a new one if it does not exist.

Arguments:

  • id str - The unique identifier of the thread.
  • name Optional[str] - Name of the thread.
  • metadata Optional[Dict] - Metadata associated with the thread.
  • participant_id Optional[str] - Identifier for the participant.
  • environment Optional[str] - Environment in which the thread operates.
  • tags Optional[List[str]] - List of tags associated with the thread.

Returns:

The updated or newly created thread.

update_thread

def update_thread(id: str,
                  name: Optional[str] = None,
                  metadata: Optional[Dict] = None,
                  participant_id: Optional[str] = None,
                  environment: Optional[str] = None,
                  tags: Optional[List[str]] = None)

Updates the specified details of an existing thread.

Arguments:

  • id str - The unique identifier of the thread to update.
  • name Optional[str] - New name of the thread.
  • metadata Optional[Dict] - New metadata for the thread.
  • participant_id Optional[str] - New identifier for the participant.
  • environment Optional[str] - New environment for the thread.
  • tags Optional[List[str]] - New list of tags for the thread.

Returns:

The updated thread.

delete_thread

def delete_thread(id: str)

Deletes a thread identified by its ID.

Arguments:

  • id str - The unique identifier of the thread to delete.

Returns:

The result of the deletion operation.

create_score

def create_score(name: str,
                 value: float,
                 type: ScoreType,
                 step_id: Optional[str] = None,
                 generation_id: Optional[str] = None,
                 dataset_experiment_item_id: Optional[str] = None,
                 comment: Optional[str] = None,
                 tags: Optional[List[str]] = None)

Creates a single score in the database.

Arguments:

  • name str - The name of the score.
  • value float - The numerical value of the score.
  • type ScoreType - The type of the score.
  • step_id Optional[str] - The ID of the step associated with the score.
  • generation_id Optional[str] - The ID of the generation associated with the score.
  • dataset_experiment_item_id Optional[str] - The ID of the dataset experiment item associated with the score.
  • comment Optional[str] - An optional comment about the score.
  • tags Optional[List[str]] - Optional tags associated with the score.

Returns:

The created Score object.

update_score

def update_score(id: str, update_params: ScoreUpdate)

Updates a score identified by its ID with new parameters.

Arguments:

  • id str - The unique identifier of the score to update.
  • update_params ScoreUpdate - A dictionary of parameters to update in the score.

Returns:

The result of the update operation.

delete_score

def delete_score(id: str)

Deletes a score identified by its ID.

Arguments:

  • id str - The unique identifier of the score to delete.

Returns:

The result of the deletion operation.

upload_file

def upload_file(content: Union[bytes, str],
                thread_id: Optional[str] = None,
                mime: Optional[str] = "application/octet-stream") -> Dict

Uploads a file to the server.

Arguments:

  • content Union[bytes, str] - The content of the file to upload.
  • thread_id Optional[str] - The ID of the thread associated with the file.
  • mime Optional[str] - The MIME type of the file. Defaults to ‘application/octet-stream’.

Returns:

  • Dict - A dictionary containing the object key and URL of the uploaded file, or None values if the upload fails.

create_attachment

def create_attachment(thread_id: str,
                      step_id: str,
                      id: Optional[str] = None,
                      metadata: Optional[Dict] = None,
                      mime: Optional[str] = None,
                      name: Optional[str] = None,
                      object_key: Optional[str] = None,
                      url: Optional[str] = None,
                      content: Optional[Union[bytes, str]] = None,
                      path: Optional[str] = None) -> "Attachment"

Creates an attachment associated with a thread and step, potentially uploading file content.

Arguments:

  • thread_id str - The ID of the thread to which the attachment is linked.
  • step_id str - The ID of the step to which the attachment is linked.
  • id Optional[str] - The ID of the attachment, if updating an existing one.
  • metadata Optional[Dict] - Metadata associated with the attachment.
  • mime Optional[str] - MIME type of the file, if content is provided.
  • name Optional[str] - Name of the attachment.
  • object_key Optional[str] - Object key of the uploaded file, if already known.
  • url Optional[str] - URL of the uploaded file, if already known.
  • content Optional[Union[bytes, str]] - File content to upload.
  • path Optional[str] - Path where the file should be stored.

Returns:

  • Attachment - The created or updated attachment object.

update_attachment

def update_attachment(id: str, update_params: AttachmentUpload)

Updates an existing attachment with new parameters.

Arguments:

  • id str - The unique identifier of the attachment to update.
  • update_params AttachmentUpload - The parameters to update in the attachment.

Returns:

The result of the update operation.

get_attachment

def get_attachment(id: str)

Retrieves an attachment by its ID.

Arguments:

  • id str - The unique identifier of the attachment to retrieve.

Returns:

The attachment data as returned by the GraphQL helper function.

delete_attachment

def delete_attachment(id: str)

Deletes an attachment identified by its ID.

Arguments:

  • id str - The unique identifier of the attachment to delete.

Returns:

The result of the deletion operation.

create_step

def create_step(thread_id: Optional[str] = None,
                type: Optional[StepType] = "undefined",
                start_time: Optional[str] = None,
                end_time: Optional[str] = None,
                input: Optional[Dict] = None,
                output: Optional[Dict] = None,
                metadata: Optional[Dict] = None,
                parent_id: Optional[str] = None,
                name: Optional[str] = None,
                tags: Optional[List[str]] = None)

Creates a new step with the specified parameters.

Arguments:

  • thread_id Optional[str] - The ID of the thread this step is associated with.
  • type Optional[StepType] - The type of the step, defaults to “undefined”.
  • start_time Optional[str] - The start time of the step.
  • end_time Optional[str] - The end time of the step.
  • input Optional[Dict] - Input data for the step.
  • output Optional[Dict] - Output data from the step.
  • metadata Optional[Dict] - Metadata associated with the step.
  • parent_id Optional[str] - The ID of the parent step, if any.
  • name Optional[str] - The name of the step.
  • tags Optional[List[str]] - Tags associated with the step.

Returns:

The result of the GraphQL helper function for creating a step.

update_step

def update_step(id: str,
                type: Optional[StepType] = None,
                input: Optional[str] = None,
                output: Optional[str] = None,
                metadata: Optional[Dict] = None,
                name: Optional[str] = None,
                tags: Optional[List[str]] = None,
                start_time: Optional[str] = None,
                end_time: Optional[str] = None,
                parent_id: Optional[str] = None)

Updates an existing step identified by its ID with new parameters.

Arguments:

  • id str - The unique identifier of the step to update.
  • type Optional[StepType] - The type of the step.
  • input Optional[str] - Input data for the step.
  • output Optional[str] - Output data from the step.
  • metadata Optional[Dict] - Metadata associated with the step.
  • name Optional[str] - The name of the step.
  • tags Optional[List[str]] - Tags associated with the step.
  • start_time Optional[str] - The start time of the step.
  • end_time Optional[str] - The end time of the step.
  • parent_id Optional[str] - The ID of the parent step, if any.

Returns:

The result of the GraphQL helper function for updating a step.

get_steps

def get_steps(
        first: Optional[int] = None,
        after: Optional[str] = None,
        before: Optional[str] = None,
        filters: Optional[steps_filters] = None,
        order_by: Optional[steps_order_by] = None) -> PaginatedResponse[Step]

Fetches a list of steps based on pagination and optional filters.

Arguments:

  • first Optional[int] - Number of steps to fetch.
  • after Optional[str] - Cursor for pagination, fetch steps after this cursor.
  • before Optional[str] - Cursor for pagination, fetch steps before this cursor.
  • filters Optional[steps_filters] - Filters to apply on the steps query.
  • order_by Optional[steps_order_by] - Order by clause for steps.

Returns:

A list of steps that match the criteria.

get_step

def get_step(id: str)

Retrieves a step by its ID.

Arguments:

  • id str - The unique identifier of the step to retrieve.

Returns:

The step data as returned by the GraphQL helper function.

delete_step

def delete_step(id: str)

Deletes a step identified by its ID.

Arguments:

  • id str - The unique identifier of the step to delete.

Returns:

The result of the deletion operation.

send_steps

def send_steps(steps: List[Union[StepDict, "Step"]])

Sends a list of steps to be processed.

Arguments:

  • steps List[Union[StepDict, “Step”]] - A list of steps or step dictionaries to send.

Returns:

The result of the GraphQL helper function for sending steps.

get_generations

def get_generations(first: Optional[int] = None,
                    after: Optional[str] = None,
                    before: Optional[str] = None,
                    filters: Optional[generations_filters] = None,
                    order_by: Optional[generations_order_by] = None)

Fetches a list of generations based on pagination and optional filters.

Arguments:

  • first Optional[int] - The number of generations to retrieve.
  • after Optional[str] - A cursor for use in pagination, fetching records after this cursor.
  • before Optional[str] - A cursor for use in pagination, fetching records before this cursor.
  • filters Optional[generations_filters] - Filters to apply to the generations query.
  • order_by Optional[generations_order_by] - Order by clause for generations.

Returns:

A list of generations that match the criteria.

create_generation

def create_generation(generation: Union[ChatGeneration, CompletionGeneration])

Creates a new generation, either a chat or completion type.

Arguments:

  • generation Union[ChatGeneration, CompletionGeneration] - The generation data to create.

Returns:

The result of the creation operation.

create_dataset

def create_dataset(name: str,
                   description: Optional[str] = None,
                   metadata: Optional[Dict] = None,
                   type: DatasetType = "key_value")

Creates a new dataset with the specified properties.

Arguments:

  • name str - The name of the dataset.
  • description Optional[str] - A description of the dataset.
  • metadata Optional[Dict] - Additional metadata for the dataset.
  • type DatasetType - The type of the dataset, defaults to “key_value”.

Returns:

The result of the dataset creation operation.

get_dataset

def get_dataset(id: Optional[str] = None, name: Optional[str] = None)

Retrieves a dataset by its ID or name.

Arguments:

  • id Optional[str] - The unique identifier of the dataset.
  • name Optional[str] - The name of the dataset.

Returns:

The dataset data as returned by the REST helper function.

update_dataset

def update_dataset(id: str,
                   name: Optional[str] = None,
                   description: Optional[str] = None,
                   metadata: Optional[Dict] = None)

Updates an existing dataset identified by its ID with new properties.

Arguments:

  • id str - The unique identifier of the dataset to update.
  • name Optional[str] - A new name for the dataset.
  • description Optional[str] - A new description for the dataset.
  • metadata Optional[Dict] - New or updated metadata for the dataset.

Returns:

The result of the dataset update operation.

delete_dataset

def delete_dataset(id: str)

Deletes a dataset identified by its ID.

Arguments:

  • id str - The unique identifier of the dataset to delete.

Returns:

The result of the deletion operation.

create_experiment

def create_experiment(dataset_id: str,
                      name: str,
                      prompt_id: Optional[str] = None,
                      params: Optional[Dict] = None) -> "DatasetExperiment"

Creates a new experiment associated with a specific dataset.

Arguments:

  • dataset_id str - The unique identifier of the dataset.
  • name str - The name of the experiment.
  • prompt_id Optional[str] - The identifier of the prompt associated with the experiment.
  • params Optional[Dict] - Additional parameters for the experiment.

Returns:

  • DatasetExperiment - The newly created experiment object.

create_experiment_item

def create_experiment_item(
        experiment_item: DatasetExperimentItem) -> DatasetExperimentItem

Creates an experiment item within an existing experiment.

Arguments:

  • experiment_item DatasetExperimentItem - The experiment item to be created, containing all necessary data.

Returns:

  • DatasetExperimentItem - The newly created experiment item with scores attached.

create_dataset_item

def create_dataset_item(dataset_id: str,
                        input: Dict,
                        expected_output: Optional[Dict] = None,
                        metadata: Optional[Dict] = None)

Creates a new dataset item with the specified properties.

Arguments:

  • dataset_id str - The unique identifier of the dataset.
  • input Dict - The input data for the dataset item.
  • expected_output Optional[Dict] - The expected output data for the dataset item.
  • metadata Optional[Dict] - Additional metadata for the dataset item.

Returns:

  • Dict - The result of the dataset item creation operation.

get_dataset_item

def get_dataset_item(id: str)

Retrieves a dataset item by its unique identifier.

Arguments:

  • id str - The unique identifier of the dataset item to retrieve.

Returns:

  • Dict - The dataset item data.

delete_dataset_item

def delete_dataset_item(id: str)

Deletes a dataset item by its unique identifier.

Arguments:

  • id str - The unique identifier of the dataset item to delete.

Returns:

  • Dict - The result of the dataset item deletion operation.

add_step_to_dataset

def add_step_to_dataset(dataset_id: str,
                        step_id: str,
                        metadata: Optional[Dict] = None)

Adds a step to a dataset.

Arguments:

  • dataset_id str - The unique identifier of the dataset.
  • step_id str - The unique identifier of the step to add.
  • metadata Optional[Dict] - Additional metadata for the step being added.

Returns:

  • Dict - The result of adding the step to the dataset.

add_generation_to_dataset

def add_generation_to_dataset(dataset_id: str,
                              generation_id: str,
                              metadata: Optional[Dict] = None)

Adds a generation to a dataset.

Arguments:

  • dataset_id str - The unique identifier of the dataset.
  • generation_id str - The unique identifier of the generation to add.
  • metadata Optional[Dict] - Additional metadata for the generation being added.

Returns:

  • Dict - The result of adding the generation to the dataset.

create_prompt_lineage

def create_prompt_lineage(name: str, description: Optional[str] = None)

Creates a prompt lineage with the specified name and optional description.

Arguments:

  • name str - The name of the prompt lineage.
  • description Optional[str] - An optional description of the prompt lineage.

Returns:

  • Dict - The result of the prompt lineage creation operation.

get_or_create_prompt

def get_or_create_prompt(name: str,
                         template_messages: List[GenerationMessage],
                         settings: Optional[ProviderSettings] = None,
                         tools: Optional[List[Dict]] = None) -> Prompt

A Prompt is fully defined by its name, template_messages, settings and tools. If a prompt already exists for the given arguments, it is returned. Otherwise, a new prompt is created.

Arguments:

  • name str - The name of the prompt to retrieve or create.
  • template_messages List[GenerationMessage] - A list of template messages for the prompt.
  • settings Optional[Dict] - Optional settings for the prompt.

Returns:

  • Prompt - The prompt that was retrieved or created.

get_prompt

def get_prompt(id: Optional[str] = None,
               name: Optional[str] = None,
               version: Optional[int] = 0) -> Prompt

Gets a prompt either by:

  • id
  • or name and (optional) version

Either the id or the name must be provided. If both are provided, the id is used.

Arguments:

  • id str - The unique identifier of the prompt to retrieve.
  • name str - The name of the prompt to retrieve.
  • version Optional[int] - The version number of the prompt to retrieve.

Returns:

  • Prompt - The prompt with the given identifier or name.

get_my_project_id

def get_my_project_id()

Retrieves the projectId associated to the API key.

Returns:

The projectId associated to the API key.

AsyncLiteralAPI Objects

class AsyncLiteralAPI(BaseLiteralAPI)

make_gql_call

async def make_gql_call(description: str, query: str,
                        variables: Dict[str, Any]) -> Dict

Asynchronously makes a GraphQL call using the provided query and variables.

Arguments:

  • description str - Description of the GraphQL operation for logging purposes.
  • query str - The GraphQL query to be executed.
  • variables Dict[str, Any] - Variables required for the GraphQL query.

Returns:

  • Dict - The JSON response from the GraphQL endpoint.

Raises:

  • Exception - If the GraphQL call fails or returns errors.

make_rest_call

async def make_rest_call(subpath: str, body: Dict[str, Any]) -> Dict

Asynchronously makes a REST API call to a specified subpath with the provided body.

Arguments:

  • subpath str - The endpoint subpath to which the POST request is made.
  • body Dict[str, Any] - The JSON body of the POST request.

Returns:

  • Dict - The JSON response from the REST API endpoint.

gql_helper

async def gql_helper(query: str, description: str, variables: Dict,
                     process_response: Callable[..., R]) -> R

Helper function to process a GraphQL query by making an asynchronous call and processing the response.

Arguments:

  • query str - The GraphQL query to be executed.
  • description str - Description of the GraphQL operation for logging purposes.
  • variables Dict - Variables required for the GraphQL query.
  • process_response Callable[…, R] - The function to process the response.

Returns:

  • R - The result of processing the response.

get_users

async def get_users(first: Optional[int] = None,
                    after: Optional[str] = None,
                    before: Optional[str] = None,
                    filters: Optional[users_filters] = None)

Asynchronously fetches a list of users based on pagination and optional filters.

Arguments:

  • first Optional[int] - The number of users to retrieve.
  • after Optional[str] - A cursor for use in pagination, fetching records after this cursor.
  • before Optional[str] - A cursor for use in pagination, fetching records before this cursor.
  • filters Optional[users_filters] - Filters to apply to the user query.

Returns:

The result of the GraphQL helper function for fetching users.

get_user

async def get_user(id: Optional[str] = None, identifier: Optional[str] = None)

Asynchronously retrieves a user by ID or identifier.

Arguments:

  • id Optional[str] - The unique identifier of the user to retrieve.
  • identifier Optional[str] - An alternative identifier for the user.

Returns:

The result of the GraphQL helper function for fetching a user.

create_user

async def create_user(identifier: str, metadata: Optional[Dict] = None)

Asynchronously creates a new user with the specified identifier and optional metadata.

Arguments:

  • identifier str - The identifier for the new user.
  • metadata Optional[Dict] - Additional metadata for the user.

Returns:

The result of the GraphQL helper function for creating a user.

update_user

async def update_user(id: str,
                      identifier: Optional[str] = None,
                      metadata: Optional[Dict] = None)

Asynchronously updates an existing user identified by ID with new identifier and/or metadata.

Arguments:

  • id str - The unique identifier of the user to update.
  • identifier Optional[str] - New identifier for the user.
  • metadata Optional[Dict] - New metadata for the user.

Returns:

The result of the GraphQL helper function for updating a user.

delete_user

async def delete_user(id: str)

Asynchronously deletes a user identified by ID.

Arguments:

  • id str - The unique identifier of the user to delete.

Returns:

The result of the GraphQL helper function for deleting a user.

get_or_create_user

async def get_or_create_user(identifier: str, metadata: Optional[Dict] = None)

Asynchronously retrieves a user by identifier or creates a new one if it does not exist.

Arguments:

  • identifier str - The identifier of the user to retrieve or create.
  • metadata Optional[Dict] - Metadata for the user if creation is necessary.

Returns:

The existing or newly created user.

get_threads

async def get_threads(first: Optional[int] = None,
                      after: Optional[str] = None,
                      before: Optional[str] = None,
                      filters: Optional[threads_filters] = None,
                      order_by: Optional[threads_order_by] = None,
                      step_types_to_keep: Optional[List[StepType]] = None)

Asynchronously fetches a list of threads based on pagination and optional filters and ordering.

Arguments:

  • first Optional[int] - The number of threads to retrieve.
  • after Optional[str] - A cursor for use in pagination, fetching records after this cursor.
  • before Optional[str] - A cursor for use in pagination, fetching records before this cursor.
  • filters Optional[threads_filters] - Filters to apply to the thread query.
  • order_by Optional[threads_order_by] - Ordering criteria for the threads.

Returns:

The result of the GraphQL helper function for fetching threads.

list_threads

async def list_threads(first: Optional[int] = None,
                       after: Optional[str] = None,
                       before: Optional[str] = None,
                       filters: Optional[threads_filters] = None,
                       order_by: Optional[threads_order_by] = None)

Asynchronously lists threads based on pagination and optional filters and ordering, similar to get_threads.

Arguments:

  • first Optional[int] - The number of threads to list.
  • after Optional[str] - A cursor for use in pagination, fetching records after this cursor.
  • before Optional[str] - A cursor for use in pagination, fetching records before this cursor.
  • filters Optional[threads_filters] - Filters to apply to the thread query.
  • order_by Optional[threads_order_by] - Ordering criteria for the threads.

Returns:

The result of the GraphQL helper function for listing threads.

get_thread

async def get_thread(id: str)

Asynchronously retrieves a thread by its ID.

Arguments:

  • id str - The unique identifier of the thread to retrieve.

Returns:

The result of the GraphQL helper function for fetching a thread.

create_thread

async def create_thread(name: Optional[str] = None,
                        metadata: Optional[Dict] = None,
                        participant_id: Optional[str] = None,
                        environment: Optional[str] = None,
                        tags: Optional[List[str]] = None)

Asynchronously creates a new thread with specified details.

Arguments:

  • name Optional[str] - The name of the thread.
  • metadata Optional[Dict] - Metadata associated with the thread.
  • participant_id Optional[str] - Identifier for the participant associated with the thread.
  • environment Optional[str] - The environment in which the thread operates.
  • tags Optional[List[str]] - Tags associated with the thread.

Returns:

The result of the GraphQL helper function for creating a thread.

upsert_thread

async def upsert_thread(id: str,
                        name: Optional[str] = None,
                        metadata: Optional[Dict] = None,
                        participant_id: Optional[str] = None,
                        environment: Optional[str] = None,
                        tags: Optional[List[str]] = None)

Asynchronously updates or inserts a thread based on the provided ID.

Arguments:

  • id str - The unique identifier of the thread to upsert.
  • name Optional[str] - The name of the thread.
  • metadata Optional[Dict] - Metadata associated with the thread.
  • participant_id Optional[str] - Identifier for the participant associated with the thread.
  • environment Optional[str] - The environment in which the thread operates.
  • tags Optional[List[str]] - Tags associated with the thread.

Returns:

The result of the GraphQL helper function for upserting a thread.

update_thread

async def update_thread(id: str,
                        name: Optional[str] = None,
                        metadata: Optional[Dict] = None,
                        participant_id: Optional[str] = None,
                        environment: Optional[str] = None,
                        tags: Optional[List[str]] = None)

Asynchronously updates an existing thread identified by ID with new details.

Arguments:

  • id str - The unique identifier of the thread to update.
  • name Optional[str] - New name of the thread.
  • metadata Optional[Dict] - New metadata for the thread.
  • participant_id Optional[str] - New identifier for the participant.
  • environment Optional[str] - New environment for the thread.
  • tags Optional[List[str]] - New list of tags for the thread.

Returns:

The result of the GraphQL helper function for updating a thread.

delete_thread

async def delete_thread(id: str)

Asynchronously deletes a thread identified by its ID.

Arguments:

  • id str - The unique identifier of the thread to delete.

Returns:

The result of the GraphQL helper function for deleting a thread.

get_scores

async def get_scores(first: Optional[int] = None,
                     after: Optional[str] = None,
                     before: Optional[str] = None,
                     filters: Optional[scores_filters] = None,
                     order_by: Optional[scores_order_by] = None)

Asynchronously fetches scores based on pagination and optional filters.

Arguments:

  • first Optional[int] - The number of scores to retrieve.
  • after Optional[str] - A cursor for use in pagination, fetching records after this cursor.
  • before Optional[str] - A cursor for use in pagination, fetching records before this cursor.
  • filters Optional[scores_filters] - Filters to apply to the scores query.
  • order_by Optional[scores_order_by] - Ordering options for the scores.

Returns:

The result of the GraphQL helper function for fetching scores.

create_scores

async def create_scores(scores: List[ScoreDict])

Asynchronously creates multiple scores.

Arguments:

  • scores List[ScoreDict] - A list of dictionaries representing the scores to be created.

Returns:

The result of the GraphQL helper function for creating scores.

create_score

async def create_score(name: str,
                       value: float,
                       type: ScoreType,
                       step_id: Optional[str] = None,
                       generation_id: Optional[str] = None,
                       dataset_experiment_item_id: Optional[str] = None,
                       comment: Optional[str] = None,
                       tags: Optional[List[str]] = None)

Asynchronously creates a single score.

Arguments:

  • name str - The name of the score.
  • value float - The numerical value of the score.
  • type ScoreType - The type of the score.
  • step_id Optional[str] - The ID of the step associated with the score.
  • generation_id Optional[str] - The ID of the generation associated with the score.
  • dataset_experiment_item_id Optional[str] - The ID of the dataset experiment item associated with the score.
  • comment Optional[str] - A comment associated with the score.
  • tags Optional[List[str]] - A list of tags associated with the score.

Returns:

The result of the GraphQL helper function for creating a score.

update_score

async def update_score(id: str, update_params: ScoreUpdate)

Asynchronously updates a score identified by its ID.

Arguments:

  • id str - The unique identifier of the score to update.
  • update_params ScoreUpdate - A dictionary of parameters to update.

Returns:

The result of the GraphQL helper function for updating a score.

delete_score

async def delete_score(id: str)

Asynchronously deletes a score identified by its ID.

Arguments:

  • id str - The unique identifier of the score to delete.

Returns:

The result of the GraphQL helper function for deleting a score.

upload_file

async def upload_file(
        content: Union[bytes, str],
        thread_id: str,
        mime: Optional[str] = "application/octet-stream") -> Dict

Asynchronously uploads a file to the server.

Arguments:

  • content Union[bytes, str] - The content of the file to upload.
  • thread_id str - The ID of the thread associated with the file.
  • mime Optional[str] - The MIME type of the file.

Returns:

A dictionary containing the object key and URL of the uploaded file.

create_attachment

async def create_attachment(thread_id: str,
                            step_id: str,
                            id: Optional[str] = None,
                            metadata: Optional[Dict] = None,
                            mime: Optional[str] = None,
                            name: Optional[str] = None,
                            object_key: Optional[str] = None,
                            url: Optional[str] = None,
                            content: Optional[Union[bytes, str]] = None,
                            path: Optional[str] = None) -> "Attachment"

Asynchronously creates an attachment and uploads it if content is provided.

Arguments:

  • thread_id str - The ID of the thread associated with the attachment.
  • step_id str - The ID of the step associated with the attachment.
  • id Optional[str] - An optional unique identifier for the attachment.
  • metadata Optional[Dict] - Optional metadata for the attachment.
  • mime Optional[str] - The MIME type of the attachment.
  • name Optional[str] - The name of the attachment.
  • object_key Optional[str] - The object key for the attachment if already uploaded.
  • url Optional[str] - The URL of the attachment if already uploaded.
  • content Optional[Union[bytes, str]] - The content of the attachment to upload.
  • path Optional[str] - The file path of the attachment if it is to be uploaded from a local file.

Returns:

The attachment object created after the upload and creation process.

update_attachment

async def update_attachment(id: str, update_params: AttachmentUpload)

Asynchronously updates an attachment identified by its ID.

Arguments:

  • id str - The unique identifier of the attachment to update.
  • update_params AttachmentUpload - A dictionary of parameters to update the attachment.

Returns:

The result of the GraphQL helper function for updating an attachment.

get_attachment

async def get_attachment(id: str)

Asynchronously retrieves an attachment by its ID.

Arguments:

  • id str - The unique identifier of the attachment to retrieve.

Returns:

The result of the GraphQL helper function for fetching an attachment.

delete_attachment

async def delete_attachment(id: str)

Asynchronously deletes an attachment identified by its ID.

Arguments:

  • id str - The unique identifier of the attachment to delete.

Returns:

The result of the GraphQL helper function for deleting an attachment.

create_step

async def create_step(thread_id: Optional[str] = None,
                      type: Optional[StepType] = "undefined",
                      start_time: Optional[str] = None,
                      end_time: Optional[str] = None,
                      input: Optional[Dict] = None,
                      output: Optional[Dict] = None,
                      metadata: Optional[Dict] = None,
                      parent_id: Optional[str] = None,
                      name: Optional[str] = None,
                      tags: Optional[List[str]] = None)

Asynchronously creates a new step with the specified parameters.

Arguments:

  • thread_id Optional[str] - The ID of the thread associated with the step.
  • type Optional[StepType] - The type of the step, defaults to “undefined”.
  • start_time Optional[str] - The start time of the step.
  • end_time Optional[str] - The end time of the step.
  • input Optional[Dict] - Input data for the step.
  • output Optional[Dict] - Output data from the step.
  • metadata Optional[Dict] - Metadata associated with the step.
  • parent_id Optional[str] - The ID of the parent step, if any.
  • name Optional[str] - The name of the step.
  • tags Optional[List[str]] - Tags associated with the step.

Returns:

The result of the GraphQL helper function for creating a step.

update_step

async def update_step(id: str,
                      type: Optional[StepType] = None,
                      input: Optional[str] = None,
                      output: Optional[str] = None,
                      metadata: Optional[Dict] = None,
                      name: Optional[str] = None,
                      tags: Optional[List[str]] = None,
                      start_time: Optional[str] = None,
                      end_time: Optional[str] = None,
                      parent_id: Optional[str] = None)

Asynchronously updates an existing step identified by its ID with new parameters.

Arguments:

  • id str - The unique identifier of the step to update.
  • type Optional[StepType] - The type of the step.
  • input Optional[str] - Input data for the step.
  • output Optional[str] - Output data from the step.
  • metadata Optional[Dict] - Metadata associated with the step.
  • name Optional[str] - The name of the step.
  • tags Optional[List[str]] - Tags associated with the step.
  • start_time Optional[str] - The start time of the step.
  • end_time Optional[str] - The end time of the step.
  • parent_id Optional[str] - The ID of the parent step, if any.

Returns:

The result of the GraphQL helper function for updating a step.

get_step

async def get_step(id: str)

Asynchronously retrieves a step by its ID.

Arguments:

  • id str - The unique identifier of the step to retrieve.

Returns:

The result of the GraphQL helper function for fetching a step.

delete_step

async def delete_step(id: str)

Asynchronously deletes a step identified by its ID.

Arguments:

  • id str - The unique identifier of the step to delete.

Returns:

The result of the GraphQL helper function for deleting a step.

send_steps

async def send_steps(steps: List[Union[StepDict, "Step"]])

Asynchronously sends a list of steps to be processed.

Arguments:

  • steps List[Union[StepDict, “Step”]] - A list of steps or step dictionaries to send.

Returns:

The result of the GraphQL helper function for sending steps.

get_generations

async def get_generations(first: Optional[int] = None,
                          after: Optional[str] = None,
                          before: Optional[str] = None,
                          filters: Optional[generations_filters] = None,
                          order_by: Optional[generations_order_by] = None)

Asynchronously fetches a list of generations based on pagination and optional filters.

Arguments:

  • first Optional[int] - The number of generations to retrieve.
  • after Optional[str] - A cursor for use in pagination, fetching records after this cursor.
  • before Optional[str] - A cursor for use in pagination, fetching records before this cursor.
  • filters Optional[generations_filters] - Filters to apply to the generations query.
  • order_by Optional[generations_order_by] - Ordering options for the generations.

Returns:

The result of the GraphQL helper function for fetching generations.

create_generation

async def create_generation(generation: Union[ChatGeneration,
                                              CompletionGeneration])

Asynchronously creates a new generation with the specified details.

Arguments:

  • generation Union[ChatGeneration, CompletionGeneration] - The generation data to create.

Returns:

The result of the GraphQL helper function for creating a generation.

create_dataset

async def create_dataset(name: str,
                         description: Optional[str] = None,
                         metadata: Optional[Dict] = None,
                         type: DatasetType = "key_value")

Asynchronously creates a new dataset with the specified details.

Arguments:

  • name str - The name of the dataset.
  • description Optional[str] - A description of the dataset.
  • metadata Optional[Dict] - Metadata associated with the dataset.
  • type DatasetType - The type of the dataset, defaults to “key_value”.

Returns:

The result of the GraphQL helper function for creating a dataset.

get_dataset

async def get_dataset(id: Optional[str] = None, name: Optional[str] = None)

Asynchronously retrieves a dataset by its ID or name.

Arguments:

  • id Optional[str] - The unique identifier of the dataset to retrieve.
  • name Optional[str] - The name of the dataset to retrieve.

Returns:

The processed response from the REST API call.

update_dataset

async def update_dataset(id: str,
                         name: Optional[str] = None,
                         description: Optional[str] = None,
                         metadata: Optional[Dict] = None)

Asynchronously updates an existing dataset identified by its ID with new details.

Arguments:

  • id str - The unique identifier of the dataset to update.
  • name Optional[str] - The new name of the dataset.
  • description Optional[str] - A new description for the dataset.
  • metadata Optional[Dict] - New metadata for the dataset.

Returns:

The result of the GraphQL helper function for updating a dataset.

delete_dataset

async def delete_dataset(id: str)

Asynchronously deletes a dataset identified by its ID.

Arguments:

  • id str - The unique identifier of the dataset to delete.

Returns:

The result of the GraphQL helper function for deleting a dataset.

create_experiment_item

async def create_experiment_item(
        experiment_item: DatasetExperimentItem) -> DatasetExperimentItem

Asynchronously creates an item within an experiment.

Arguments:

  • experiment_item DatasetExperimentItem - The experiment item to be created.

Returns:

  • DatasetExperimentItem - The created experiment item with updated scores.

create_dataset_item

async def create_dataset_item(dataset_id: str,
                              input: Dict,
                              expected_output: Optional[Dict] = None,
                              metadata: Optional[Dict] = None)

Asynchronously creates a dataset item.

Arguments:

  • dataset_id str - The unique identifier of the dataset.
  • input Dict - The input data for the dataset item.
  • expected_output Optional[Dict] - The expected output data for the dataset item.
  • metadata Optional[Dict] - Additional metadata for the dataset item.

Returns:

The result of the GraphQL helper function for creating a dataset item.

get_dataset_item

async def get_dataset_item(id: str)

Asynchronously retrieves a dataset item by its ID.

Arguments:

  • id str - The unique identifier of the dataset item.

Returns:

The result of the GraphQL helper function for fetching a dataset item.

delete_dataset_item

async def delete_dataset_item(id: str)

Asynchronously deletes a dataset item by its ID.

Arguments:

  • id str - The unique identifier of the dataset item to delete.

Returns:

The result of the GraphQL helper function for deleting a dataset item.

add_step_to_dataset

async def add_step_to_dataset(dataset_id: str,
                              step_id: str,
                              metadata: Optional[Dict] = None)

Asynchronously adds a step to a dataset.

Arguments:

  • dataset_id str - The unique identifier of the dataset.
  • step_id str - The unique identifier of the step to add.
  • metadata Optional[Dict] - Additional metadata for the step being added.

Returns:

The result of the GraphQL helper function for adding a step to a dataset.

add_generation_to_dataset

async def add_generation_to_dataset(dataset_id: str,
                                    generation_id: str,
                                    metadata: Optional[Dict] = None)

Asynchronously adds a generation to a dataset.

Arguments:

  • dataset_id str - The unique identifier of the dataset.
  • generation_id str - The unique identifier of the generation to add.
  • metadata Optional[Dict] - Additional metadata for the generation being added.

Returns:

The result of the GraphQL helper function for adding a generation to a dataset.

create_prompt_lineage

async def create_prompt_lineage(name: str, description: Optional[str] = None)

Asynchronously creates a prompt lineage.

Arguments:

  • name str - The name of the prompt lineage.
  • description Optional[str] - An optional description of the prompt lineage.

Returns:

The result of the GraphQL helper function for creating a prompt lineage.