LiteralAPI

class LiteralAPI(BaseLiteralAPI)
from literalai import LiteralClient
# Initialize the client
literalai_client = LiteralClient(api_key="your_api_key_here")
# Access the API's methods
print(literalai_client.api)

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. step_types_to_keep (Optional[List[StepType]]) : If set, only steps of the corresponding types will be returned
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. 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,
                  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.
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,
                  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.
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,
                  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.
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: Optional[str] = None,
                      step_id: Optional[str] = None,
                      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:
literalai.observability.step.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,
                root_run_id: Optional[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.
root_run_id
Optional[str]
The ID of the root run, if any.
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.
from literalai.observability.generation import ChatGeneration
from literalai import LiteralClient

literalai_client = LiteralClient(api_key=)

example_generation = ChatGeneration(
    messages=[
        {
            "role": "user",
            "content": "Hello, how can I help you today?"
        },
    ],
    message_completion={
        "role": "assistant",
        "content": "Sure, I can help with that. What do you need to know?"
    },
    model="gpt-4o-mini",
    provider="OpenAI"
)

literalai_client.api.create_generation(example_generation)
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) -> Optional[Dataset]
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(name: str,
                      dataset_id: Optional[str] = None,
                      prompt_id: Optional[str] = None,
                      params: Optional[Dict] = None) -> "DatasetExperiment"
Creates a new experiment associated with a specific dataset. Arguments:
name
str
The name of the experiment.
dataset_id
Optional[str]
The unique identifier of the dataset.
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.

get_or_create_prompt_lineage

def get_or_create_prompt_lineage(name: str, description: Optional[str] = None)
Creates a prompt lineage with the specified name and optional description. If the prompt lineage with that name already exists, it is returned. 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.
tools
Optional[List[Dict]]
Optional tool options for the model
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] = None) -> 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_prompt_ab_testing

def get_prompt_ab_testing(name: str) -> List[PromptRollout]
Get the A/B testing configuration for a prompt lineage. Arguments:
name
str
The name of the prompt lineage.
Returns: List[PromptRollout]

update_prompt_ab_testing

def update_prompt_ab_testing(name: str, rollouts: List[PromptRollout]) -> Dict
Update the A/B testing configuration for a prompt lineage. Arguments:
name
str
The name of the prompt lineage.
rollouts
List[PromptRollout]
The percentage rollout for each prompt version.
Returns: Dict

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

class AsyncLiteralAPI(BaseLiteralAPI)
from literalai import AsyncLiteralClient
# Initialize the client
async_literalai_client = AsyncLiteralClient(api_key="your_api_key_here")
# Access the API's methods
print(async_literalai_client.api)

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. step_types_to_keep (Optional[List[StepType]]) : If set, only steps of the corresponding types will be returned
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,
                        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.
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,
                        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.
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,
                        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.
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[literalai.observability.step.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
Deprecated - use step_id
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: Optional[str] = None,
        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,
                      root_run_id: Optional[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.
root_run_id
Optional[str]
The ID of the root run, if any.
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.