Aperçu de l’API
classe Agent
Champs Pydantic :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonemodel_name:<class 'str'>temperature:<class 'float'>system_message:<class 'str'>tools:list[typing.Any]
méthode step
state: l’état actuel de l’environnement.action: l’action à effectuer. Retourne : Le nouvel état de l’environnement.
classe AgentState
Champs Pydantic :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonehistory:list[typing.Any]
classe AnnotationSpec
Champs Pydantic :
name:str | Nonedescription:str | Nonefield_schema:dict[str, typing.Any]unique_among_creators:<class 'bool'>op_scope:list[str] | None
classmethod preprocess_field_schema
classmethod validate_field_schema
méthode value_is_valid
-
payload: les données à valider par rapport au schéma Retourne : -
bool: True si la validation réussit, False sinon
classe Audio
Classe représentant des données audio dans un format pris en charge (wav ou mp3).
Cette classe gère le stockage des données audio et fournit des méthodes pour les charger depuis différentes sources et les exporter vers des fichiers.
Attributs :
format: Le format audio (actuellement, ‘wav’ ou ‘mp3’ sont pris en charge)data: Les données audio brutes, sous forme d’octets
-
data: Les données audio (octets ou string encodée en base64) -
format: Le format audio (‘wav’ ou ‘mp3’) -
validate_base64: Indique s’il faut tenter de décoder les données d’entrée en base64 Exceptions levées : -
ValueError: Si les données audio sont vides ou si le format n’est pas pris en charge
méthode __init__
méthode export
classmethod from_data
-
path: chemin où le fichier audio doit être écrit Arguments : -
data: données audio sous forme d’octets ou de string encodée en base64 -
format: format audio (‘wav’ ou ‘mp3’) Retourne : -
Audio: une nouvelle instance d’Audio
ValueError: si le format n’est pas pris en charge
classmethod from_path
-
path: chemin d’accès à un fichier audio (extension .wav ou .mp3 obligatoire) Retourne : -
Audio: une nouvelle instance Audio chargée à partir du fichier
ValueError: si le fichier n’existe pas ou si son extension n’est pas prise en charge
classe ClassifierMonitor
Un moniteur qui fusionne plusieurs évaluateurs en un seul classifieur.
Les moniteurs de classification regroupent les prompts de plusieurs LLMAsAJudgeScorers ciblant le même modèle en un seul appel d’évaluation.
Champs Pydantic :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonesampling_rate:<class 'float'>scorers:list[flow.scorer.Scorer]op_names:list[typing.Union[typing.Literal['genai.turn_ended'], str]]query:trace_server.interface.query.Query | Noneis_traced:<class 'bool'>active:<class 'bool'>scorer_debounce_config:flow.monitor.ScorerDebounceConfig | Noneprompt_header:str | Noneprompt_footer:str | None
méthode activate
méthode deactivate
classmethod from_obj
méthode get_prompt_footer
méthode get_prompt_header
méthode model_post_init
op_names lors de la construction lorsqu’un client est disponible.
La publication ne dispose d’aucun hook par objet. Pour couvrir également un simple appel à weave.publish(monitor) (sans activate()), les noms courts sont donc développés ici : toute personne qui publie a généralement déjà appelé weave.init, de sorte que le client est défini au moment de la construction du moniteur.
Dans plusieurs cas d’usage, la construction s’effectue sans client : tests unitaires, inspection, ou encore désérialisation d’un moniteur stocké dans un worker. La vérification sur get_weave_client() permet la construction sans client. Dans ce cas, la normalisation n’a pas lieu, ce qui ne devrait pas poser de problème, car les moniteurs stockés contiennent déjà des réf. complètes.
Il existe un cas limite dans lequel un moniteur peut être créé avec le SDK sans être normalisé : lorsque l’utilisateur construit le moniteur, appelle ensuite weave.init, puis le publie. Pour contourner ce problème, vous pouvez appeler activate() ou deactivate().
classe Content
Classe permettant de représenter du contenu issu de diverses sources en le convertissant en une représentation unifiée sous forme d’octets, accompagnée des métadonnées associées.
Cette classe doit être instanciée à l’aide de l’une de ses classmethods :
- from_path()
- from_bytes()
- from_text()
- from_url()
- from_base64()
- from_data_url()
méthode __init__
Content.from_path() pour créer une instance.
Champs Pydantic :
data:<class 'bytes'>size:<class 'int'>mimetype:<class 'str'>digest:<class 'str'>filename:<class 'str'>content_type:typing.Literal['bytes', 'text', 'base64', 'file', 'url', 'data_url', 'data_url:base64', 'data_url:encoding', 'data_url:encoding:base64']input_type:<class 'str'>encoding:<class 'str'>metadata:dict[str, typing.Any] | Noneextension:str | None
propriété art
propriété ref
méthode as_string
encoding. Si l’encodage est base64, les données sont réencodées en octets base64, puis décodées en string ASCII.
Retourne :
str.
classmethod from_base64
classmethod from_bytes
classmethod from_data_url
classmethod from_path
classmethod from_text
classmethod from_url
classmethod model_validate
classmethod model_validate_json
méthode open
bool: True si le fichier a bien été ouvert, False sinon.
méthode save
méthode serialize_data
méthode to_data_url
-
dest: chemin de destination vers lequel le fichier sera copié (string ou pathlib.Path). Le chemin de destination peut être un fichier ou un répertoire. Si dest n’a pas d’extension de fichier (par exemple .txt), la destination est considérée comme un répertoire. Arguments : -
use_base64: si True, les données sont encodées en base64. Sinon, elles sont encodées en pourcentage (percent-encoding). Valeur par défaut : True. Retourne : Une URL de données sous forme de string.
classe Conversation
Une conversation. Regroupe les tours de conversation par conversation_id (sans span).
continue_parent_trace contrôle l’isolation des traces pour les tours de conversation créés par cette conversation. Avec la valeur par défaut False, chaque tour de conversation démarre sa propre trace OTel (le choix adapté à la vue autonome de l’onglet Agents). Définissez True lorsque l’application dispose d’une trace externe (par exemple, une requête instrumentée par fastapi) qui doit englober l’appel d’agent.
Champs Pydantic :
conversation_id:<class 'str'>conversation_name:<class 'str'>agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>include_content:<class 'bool'>continue_parent_trace:<class 'bool'>attributes:dict[str, typing.Any]
méthode end
méthode model_post_init
méthode start_turn
_current_turn afin que le tour de conversation soit accessible via get_current_turn(), qu’un gestionnaire de contexte soit utilisé ou non. Chacun des paramètres agent_name / model / agent_id / agent_description / agent_version reprend la valeur par défaut de la conversation s’il est laissé vide ; continue_parent_trace est hérité. Vous pouvez redéfinir n’importe lequel d’entre eux ultérieurement via turn.record(...).
system_instructions (le prompt système de l’agent) est porté par le span invoke_agent du tour de conversation ; vous pouvez également le définir ultérieurement en affectant l’attribut sur le Turn renvoyé, comme pour start_llm.
classe Dataset
Objet Dataset offrant un enregistrement simplifié et une gestion automatique des versions.
Exemples :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonerows:trace.table.Table | trace.vals.WeaveTable
méthode add_rows
rows: les lignes à ajouter au dataset. Retourne : Le dataset mis à jour.
classmethod convert_to_table
classmethod from_calls
classmethod from_hf
classmethod from_obj
classmethod from_pandas
méthode select
indices: un itérable d’indices entiers indiquant les lignes à sélectionner. Retourne : Un nouvel objet Dataset contenant uniquement les lignes sélectionnées.
méthode to_hf
méthode to_pandas
classe EasyPrompt
méthode __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonedata:<class 'list'>config:<class 'dict'>requirements:<class 'dict'>
propriété as_str
Regroupe tous les messages dans une seule string.propriété is_bound
propriété messages
propriété placeholders
propriété system_message
Regrouper tous les messages dans un message de prompt système.propriété system_prompt
Regrouper tous les messages dans un objet de prompt système.propriété unbound_placeholders
méthode append
méthode as_dict
méthode as_pydantic_dict
méthode bind
méthode bind_rows
méthode config_table
méthode configure
méthode dump
méthode dump_file
méthode format
classmethod from_obj
classmethod load
classmethod load_file
méthode messages_table
méthode print
méthode publish
méthode require
méthode run
méthode validate_requirement
méthode validate_requirements
méthode values_table
classe Evaluation
Configure une évaluation comprenant un ensemble d’évaluateurs et un dataset.
L’Appel à evaluation.evaluate(model) transmet les lignes d’un dataset à un modèle, en faisant correspondre les noms des colonnes du dataset aux noms des arguments de model.predict.
La méthode appelle ensuite tous les évaluateurs et enregistre les résultats dans Weave.
Pour prétraiter les lignes du dataset, vous pouvez transmettre une fonction à preprocess_model_input.
Exemples :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonedataset:<class 'dataset.dataset.Dataset'>scorers:list[typing.Annotated[trace.op_protocol.Op | flow.scorer.Scorer, BeforeValidator(func=<function cast_to_scorer at 0x7f136d430d60>, json_schema_input_type=PydanticUndefined)]] | Nonepreprocess_model_input:collections.abc.Callable[[dict], dict] | Nonetrials:<class 'int'>metadata:dict[str, typing.Any] | Noneevaluation_name:str | collections.abc.Callable[trace.call.Call, str] | None
méthode evaluate
classmethod from_obj
méthode get_eval_results
méthode get_evaluate_calls
CallsIter: Un itérateur sur des objets Appel représentant des runs d’évaluation.
ValueError: Si l’évaluation n’a pas de réf. (elle n’a pas encore été enregistrée ni exécutée).
méthode get_score_calls
dict[str, list[Call]]: Un dictionnaire associant les ID de trace à des listes d’objets Appel d’évaluateur. Chaque ID de trace correspond à un run d’évaluation et la liste contient tous les Appels d’évaluateur exécutés au cours de ce run.
méthode get_scores
dict[str, dict[str, list[Any]]]: Une structure de dictionnaire imbriqué dans laquelle :- les clés de premier niveau sont les ID de trace (runs d’évaluation) ;
- les clés de second niveau sont les noms des évaluateurs ;
- les valeurs sont des listes de sorties d’évaluateur pour le run et l’évaluateur correspondants.
méthode model_post_init
méthode predict_and_score
méthode summarize
classe EvaluationLogger
Cette classe fournit une interface impérative pour journaliser des évaluations.
Une évaluation démarre automatiquement lorsque la première prédiction est journalisée à l’aide de la méthode log_prediction, et se termine lorsque la méthode log_summary est appelée.
Chaque fois que vous journalisez une prédiction, un objet ScoreLogger vous est renvoyé. Cet objet vous permet de journaliser des scores et des métadonnées propres à cette prédiction. Pour plus d’informations, voir la classe ScoreLogger.
Utilisation de base – journaliser directement des prédictions avec leurs entrées et sorties :
méthode __init__
property attributes
property ui_url
méthode fail
méthode finish
méthode log_example
inputs: les données d’entrée de la prédictionoutput: la valeur de sortiescores: dictionnaire associant les noms des évaluateurs aux valeurs de score Exemple :
méthode log_prediction
inputs: les données d’entrée de la prédictionoutput: la valeur de sortie. Valeur par défaut : None. Peut être définie ultérieurement via pred.output. Retourne : Un ScoreLogger permettant de journaliser des scores et, si besoin, de finaliser la prédiction.
pred = ev.log_prediction({'q': ’…’}, output=“answer”) pred.log_score(“correctness”, 0.9) pred.finish()
with ev.log_prediction({'q': ’…’}) as pred: response = model(…) pred.output = response pred.log_score(“correctness”, 0.9) # Appelle automatiquement finish() à la sortie
méthode log_summary
méthode set_view
weave.views.
Enregistre le contenu fourni en tant qu’objet dans le projet et écrit son URI de référence sous summary.weave.views.<name> pour l’Appel evaluate de l’évaluation. Les entrées de type string sont encapsulées en tant que contenu textuel à l’aide de Content.from_text, avec l’extension ou le type MIME fourni.
Arguments :
name: nom de la vue à afficher, utilisé comme clé soussummary.weave.views.content: instance deweave.Contentou string à sérialiser.extension: extension de fichier facultative pour les entrées de contenu de type string.mimetype: type MIME facultatif pour les entrées de contenu de type string.metadata: métadonnées facultatives jointes auContentnouvellement créé.encoding: encodage du texte pour les entrées de contenu de type string. Retourne : None
import weave
ev = weave.EvaluationLogger() ev.set_view(“report”, ”# Report”, extension=“md”)
classe File
Classe représentant un fichier, avec des informations sur son chemin, son type MIME et sa taille.
méthode __init__
property filename
Obtenir le nom du fichier.-
path: chemin du fichier (string ou pathlib.Path) -
mimetype: type MIME facultatif du fichier ; déduit de l’extension s’il n’est pas fourni Retourne : -
str: le nom du fichier, sans le chemin du répertoire.
méthode open
bool: True si le fichier a bien été ouvert, False sinon.
méthode save
classe LLM
Un Appel d’API LLM. Correspond à un span OTel de chat.
-
dest: chemin de destination vers lequel le fichier sera copié (string ou pathlib.Path). Le chemin de destination peut être un fichier ou un répertoire. Champs Pydantic : -
model:<class 'str'> -
provider_name:<class 'str'> -
response_id:<class 'str'> -
response_model:<class 'str'> -
output_type:<class 'str'> -
system_instructions:list[str] -
usage:<class 'conversation.types.Usage'> -
reasoning:<class 'conversation.types.Reasoning'> -
finish_reasons:list[str] -
input_messages:list[conversation.types.Message] -
output_messages:list[conversation.types.Message] -
media_attachments:list[conversation.types.MediaAttachment] -
request_temperature:float | None -
request_max_tokens:int | None -
request_top_p:float | None -
request_frequency_penalty:float | None -
request_presence_penalty:float | None -
request_seed:int | None -
request_stop_sequences:list[str] -
request_choice_count:int | None -
started_at:datetime.datetime | None -
ended_at:datetime.datetime | None
méthode add_event
set_attributes. OpenTelemetry abandonne progressivement l’API Span Event (Span.add_event). add_event fonctionne toujours, et les données d’événements de span existantes restent valides. Voir https://opentelemetry.io/blog/2026/deprecating-span-events/.
Content à partir des données fournies, le publie pour obtenir une réf. weave:// et ne stocke que cette réf. Vous devez fournir exactement un des paramètres suivants : content, uri ou file_id.
La publication (qui téléverse le média) s’exécute sur un thread d’arrière-plan dédié : l’Appel rend donc la main immédiatement, sans bloquer l’appelant. Un thread est lancé par pièce jointe, ce qui permet d’effectuer plusieurs téléversements en parallèle. L’objet MediaAttachment provisoire est ajouté de manière synchrone, et sa ref est renseignée une fois le téléversement terminé. Les réfs sont toujours renseignées avant l’émission du span (le chemin de construction attend la fin des téléversements en cours via _await_uploads).
méthode attach_media_url
attach_media dans le cas courant où l’appelant dispose d’une URL sous forme de string provenant d’un message en amont. Les URL data: sont décodées en octets puis publiées ; les URI simples sont récupérées puis publiées. Les URL vides sont ignorées. Renvoie self pour permettre le chaînage.
méthode end
méthode model_post_init
méthode output
méthode record
input_messages, output_messages, usage, response_id, etc.). record(...) les regroupe en un seul appel avec arguments nommés, ce qui permet de garder compact le code d’enregistrement.
Seuls les champs explicitement transmis (autres que None) sont appliqués ; les valeurs existantes sont conservées. reasoning accepte soit une instance de Reasoning, soit une simple chaîne de caractères (encapsulée automatiquement). Renvoie self pour permettre le chaînage.
méthode set_attributes
span.set_attributes({"weave.tag": "value"}). Équivalent de Span.set_attributes d’OTel.
Doit être appelée entre le début et la fin du span, c’est-à-dire à l’intérieur d’un bloc with. En dehors de cette fenêtre, l’appel est sans effet (no-op) et journalise un avertissement. Pour l’ingestion par lots, renseignez directement les champs déclarés de l’objet et passez celui-ci à log_turn / log_conversation.
méthode think
classe LogResult
Résultat d’un appel log_* par lot.
Champs Pydantic :
conversation_id:<class 'str'>trace_ids:list[str]root_span_ids:list[str]span_count:<class 'int'>
classe Markdown
Un objet Markdown pouvant faire l’objet d’un rendu.
Arguments :
markup(str) : Une chaîne de caractères contenant du markdown.code_theme(str, facultatif) : Thème Pygments pour les blocs de code. Valeur par défaut : “monokai”. Voir https://pygments.org/styles/ pour les thèmes de code disponibles.justify(JustifyMethod, facultatif) : Valeur de justification des paragraphes. Valeur par défaut : None.style(Union[str, Style], facultatif) : Style facultatif à appliquer au markdown.hyperlinks(bool, facultatif) : Active les liens hypertextes. Valeur par défaut :True.
méthode __init__
classe MediaAttachment
Un média joint à un appel LLM.
Contient toujours une URI de réf. de contenu weave://. Les octets bruts, les URL de données et les URI HTTP simples sont convertis en objet Content publié par LLM.attach_media avant d’être stockés ici.
-
inline_code_lexer: (str, facultatif) : analyseur lexical à utiliser si la coloration syntaxique du code en ligne est activée. Valeur par défaut : None. -
inline_code_theme: (Optional[str], facultatif) : thème Pygments pour la coloration syntaxique du code en ligne, ou None pour désactiver la coloration. Valeur par défaut : None. Champs Pydantic : -
ref:<class 'str'> -
modality:<class 'str'> -
mime_type:<class 'str'>
classe Message
Un message unique au sein d’une conversation.
Deux styles de construction sont pris en charge :
-
Plat (rétrocompatible, pratique pour du texte brut) :
Message(role="assistant", content="Hi there") -
Parties explicites (plus complet — prend en charge les appels d’outil, le mélange de raisonnement et de texte, ainsi que les médias intégrés) :
Message(role="assistant", parts=[TextPart(content="Let me check"), ToolCallPart(id="c1", name="get_weather", arguments='{...}')])
parts n’est pas vide, il constitue la représentation canonique. S’il est vide, le sérialiseur génère un unique TextPart (ou ToolCallResponsePart pour role="tool") à partir des champs plats.
Champs Pydantic :
role:typing.Literal['user', 'assistant', 'system', 'tool']content:<class 'str'>tool_call_id:<class 'str'>tool_name:<class 'str'>parts:list[typing.Annotated[conversation.types.TextPart | conversation.types.ReasoningPart | conversation.types.ToolCallPart | conversation.types.ToolCallResponsePart | conversation.types.BlobPart | conversation.types.UriPart | conversation.types.FilePart, FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
classmethod assistant
tool_calls lorsque l’assistant fait appel à un ou plusieurs outils. Lorsque les deux sont présents, le texte est émis sous la forme d’un TextPart initial, suivi de chaque ToolCallPart, afin que la vue du chat les affiche en ligne.
classmethod system
classmethod tool_result
output peut être une chaîne de caractères, un dict, une liste, un scalaire ou None. Le ToolCallResponsePart sous-jacent encode en JSON les valeurs autres que des chaînes.
classmethod user
classe MessagesPrompt
méthode __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonemessages:list[dict]
méthode format
méthode format_message
classmethod from_obj
classe Model
Destiné à capturer une combinaison de code et de données qui traite une entrée. Par exemple, il peut appeler un LLM avec un prompt pour faire une prédiction ou générer du texte.
Lorsque vous modifiez les attributs ou le code qui définit votre modèle, ces modifications sont journalisées et la version est mise à jour. Vous pouvez ainsi comparer les prédictions entre les différentes versions de votre modèle. Utilisez cette fonctionnalité pour itérer sur vos prompts ou pour essayer le dernier LLM et comparer les prédictions obtenues avec différents paramètres
Exemples :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
méthode get_infer_method
classe Monitor
Configure un moniteur chargé d’attribuer automatiquement un score aux appels entrants.
Notez que le nom de l’op sera converti en réf. Weave à partir de l’entity et du projet du client Weave. Si vous travaillez sur plusieurs entities et projets avec le même client, vous devrez indiquer une réf. Weave entièrement qualifiée. Pour plus de détails, voir _normalized_op_names.
Exemples :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonesampling_rate:<class 'float'>scorers:list[flow.scorer.Scorer]op_names:list[typing.Union[typing.Literal['genai.turn_ended'], str]]query:trace_server.interface.query.Query | Noneis_traced:<class 'bool'>active:<class 'bool'>scorer_debounce_config:flow.monitor.ScorerDebounceConfig | None
méthode activate
méthode deactivate
classmethod from_obj
méthode model_post_init
op_names lors de la construction lorsqu’un client est disponible.
La publication ne dispose d’aucun hook par objet. Pour couvrir également un simple weave.publish(monitor) (sans activate()), les noms courts sont donc développés ici : quiconque publie a généralement déjà appelé weave.init, si bien que le client est défini au moment de la construction du moniteur.
Dans plusieurs cas d’usage, la construction se fait sans client : tests unitaires, inspection ou désérialisation d’un moniteur stocké dans un worker, par exemple. La vérification sur get_weave_client() autorise la construction sans client. La normalisation n’a alors pas lieu, mais cela ne devrait pas poser de problème, car les moniteurs stockés contiennent déjà des réf. complètes.
Il existe un cas limite dans lequel un moniteur peut être créé avec le SDK sans être normalisé : lorsque l’utilisateur construit le moniteur, appelle ensuite weave.init, puis le publie. Pour contourner ce problème, vous pouvez appeler activate() ou deactivate().
classe Object
Classe de base pour les objets Weave pouvant être suivis et versionnés.
Cette classe étend la classe BaseModel de Pydantic afin de fournir des fonctionnalités propres à Weave pour le suivi, le référencement et la sérialisation des objets. Les objets peuvent avoir un nom, une description et des références, qui permettent de les stocker dans le système Weave et de les en récupérer.
Attributs :
name(str | None) : Nom lisible de l’objet.description(str | None) : Description de ce que représente l’objet.ref(ObjectRef | None) : Référence à l’objet dans le système Weave.
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
classmethod from_uri
uri(str) : L’URI Weave qui pointe vers l’objet.objectify(bool) : Indique si le résultat doit être converti en objet. Valeur par défaut : True.
Self: Une instance de la classe créée à partir de l’URI.
NotImplementedError: Si la classe n’implémente pas les méthodes requises pour la désérialisation.
classmethod handle_relocatable_object
v(Any) : La valeur à valider.handler(ValidatorFunctionWrapHandler) : Le gestionnaire de validation pydantic standard.info(ValidationInfo) : Informations sur le contexte de validation.
Any: L’instance d’objet validée.
Lorsqu’un ObjectRef est transmis
obj = MyObject(some_object_ref)Lorsqu’un WeaveObject est transmis
obj = MyObject(some_weave_object)classe ObjectRef
ObjectRef(entity: ‘str’, project: ‘str’, name: ‘str’, _digest: ‘str | Future[str]’, _extra: ‘tuple[str | Future[str], …]’ = ())
méthode __init__
propriété digest
propriété extra
propriété is_digest_resolved
méthode as_param_dict
méthode delete
méthode get
méthode is_descended_from
méthode maybe_parse_uri
méthode parse_uri
méthode with_attr
méthode with_extra
méthode with_index
méthode with_item
méthode with_key
classe Prompt
Champs Pydantic :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
méthode format
classe SavedView
Une classe de style fluent permettant de manipuler les objets SavedView.
méthode __init__
propriété entity
propriété label
propriété project
propriété view_type
méthode add_column
méthode add_columns
méthode add_filter
méthode add_sort
méthode column_index
méthode filter_op
méthode get_calls
méthode get_known_columns
méthode get_table_columns
méthode hide_column
méthode insert_column
classmethod load
méthode page_size
méthode pin_column_left
méthode pin_column_right
méthode remove_column
méthode remove_columns
méthode remove_filter
méthode remove_filters
méthode rename
méthode rename_column
méthode save
méthode set_columns
méthode show_column
méthode sort_by
méthode to_grid
méthode to_rich_table_str
méthode ui_url
méthode unpin_column
classe Scorer
Champs Pydantic :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonecolumn_map:dict[str, str] | None
propriété display_name
classmethod from_obj
méthode model_post_init
méthode score
méthode summarize
classe Session
Alias obsolète de :class:weave.Conversation.
Accepte les anciens champs de constructeur session_id / session_name et les expose également sous forme de propriétés en lecture/écriture, redirigées vers conversation_id / conversation_name. Dans la classe Session d’origine, il s’agissait de champs de modèle : l’ancien code qui lit ou attribue s.session_id continue donc de fonctionner.
méthode __init__
conversation_id:<class 'str'>conversation_name:<class 'str'>agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>include_content:<class 'bool'>continue_parent_trace:<class 'bool'>attributes:dict[str, typing.Any]
propriété session_id
Alias obsolète de :attr:conversation_id.
propriété session_name
Alias obsolète de :attr:conversation_name.
classe StringPrompt
méthode __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonecontent:<class 'str'>
méthode format
classmethod from_obj
classe SubAgent
Un appel d’agent délégué au sein d’un tour de conversation.
Correspond à un span OTel invoke_agent imbriqué dans la même trace.
Champs Pydantic :
name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>system_instructions:list[str]started_at:datetime.datetime | Noneended_at:datetime.datetime | None
méthode add_event
set_attributes. OpenTelemetry abandonne progressivement l’API Span Event (Span.add_event). add_event fonctionne toujours et les données d’événements de span existantes restent valides. Voir https://opentelemetry.io/blog/2026/deprecating-span-events/.
méthode llm
_current_llm afin que le LLM soit accessible via get_current_llm(), qu’un gestionnaire de contexte soit utilisé ou non.
méthode record
system_instructions, agent_id, …). Seuls les champs explicitement transmis (différents de None) sont appliqués ; les valeurs existantes sont conservées. Renvoie self pour permettre le chaînage. Fonctionne comme Turn.record / LLM.record.
Remarque : dans le cas du streaming (with), le nom du span du sous-agent est défini à partir de name lors de __enter__. Si vous souhaitez que le nom du span reflète name, définissez-le donc via start_subagent / turn.subagent plutôt que via record ; record met tout de même à jour l’attribut gen_ai.agent.name.
méthode set_attributes
span.set_attributes({"weave.tag": "value"}). Équivalent de Span.set_attributes d’OTel.
Doit être appelé entre le début et la fin du span, c’est-à-dire à l’intérieur d’un bloc with. En dehors de cette fenêtre, l’appel est sans effet (no-op) et journalise un avertissement. Pour l’ingestion par lots, renseignez directement les champs déclarés de l’objet, puis passez-le à log_turn / log_conversation.
méthode tool
classe Table
méthode __init__
propriété rows
méthode append
méthode pop
classe ContextAwareThread
Un Thread qui exécute des fonctions avec le contexte de l’appelant.
Il s’agit d’un remplacement direct de threading.Thread qui garantit que les appels se comportent comme prévu à l’intérieur du thread. Weave exige que certaines contextvars soient définies (voir call_context.py), mais les nouveaux threads ne copient pas automatiquement le contexte du parent, ce qui peut entraîner la perte du contexte d’appel, ce qui est fâcheux ! Cette classe automatise la copie des contextvars : ce thread « fonctionne tout simplement », comme l’utilisateur s’y attend sans doute.
Vous pouvez obtenir le même résultat sans cette classe en écrivant plutôt :
méthode __init__
property daemon
Valeur booléenne indiquant si ce thread est un thread démon. Elle doit être définie avant l’appel à start(), sinon une RuntimeError est levée. Sa valeur initiale est héritée du thread qui le crée ; le thread principal n’étant pas un thread démon, tous les threads créés dans le thread principal ont par défaut daemon = False. L’ensemble du programme Python se termine lorsqu’il ne reste plus que des threads démons.property ident
Identifiant de ce thread, ou None s’il n’a pas encore été démarré. Il s’agit d’un entier non nul. Voir la fonction get_ident(). Les identifiants de thread peuvent être réutilisés lorsqu’un thread se termine et qu’un autre thread est créé. L’identifiant reste disponible même après la fin du thread.property name
Chaîne de caractères utilisée uniquement à des fins d’identification. Elle n’a aucune valeur sémantique. Plusieurs threads peuvent porter le même nom. Le nom initial est défini par le constructeur.property native_id
Identifiant entier natif de ce thread, ou None s’il n’a pas encore été démarré. Il s’agit d’un entier positif ou nul. Voir la fonction get_native_id(). Cette valeur correspond à l’identifiant du thread tel qu’indiqué par le noyau.méthode run
classe ThreadContext
Objet de contexte donnant accès aux informations sur le thread et le tour de conversation en cours.
méthode __init__
property thread_id
Obtenir le thread_id de ce contexte.thread_id: L’identifiant du thread de ce contexte, ou None si le suivi est désactivé. Retourne : L’identifiant du thread, ou None si le suivi des threads est désactivé.
property turn_id
Obtient le turn_id actuel à partir du contexte actif. Retourne : Le turn_id actuel s’il est défini, sinon None.classe ContextAwareThreadPoolExecutor
Un ThreadPoolExecutor qui exécute des fonctions avec le contexte de l’appelant.
Cette classe remplace directement concurrent.futures.ThreadPoolExecutor et garantit que les appels Weave se comportent comme prévu dans l’exécuteur. Weave exige que certaines contextvars soient définies (voir call_context.py), mais les nouveaux threads ne copient pas automatiquement le contexte du thread parent, ce qui peut entraîner la perte du contexte d’appel, ce qu’il faut éviter ! Cette classe automatise la copie des contextvars, de sorte que cet exécuteur « fonctionne tout simplement », comme l’utilisateur s’y attend probablement.
Vous pouvez obtenir le même résultat sans cette classe en écrivant plutôt :
méthode __init__
méthode map
méthode submit
classe Tool
Une exécution d’outil. Correspond à un span OTel execute_tool.
arguments et result utilisent l’annotation JSONString : les appelants peuvent attribuer un dict, une liste ou un scalaire, que le SDK encode en JSON lors de la construction ou de l’attribution. La valeur stockée est toujours une chaîne de caractères, conformément au format de transmission défini par les conventions sémantiques GenAI.
Champs Pydantic :
name:<class 'str'>arguments:<class 'str'>result:<class 'str'>tool_call_id:<class 'str'>tool_type:<class 'str'>tool_description:<class 'str'>tool_definitions:<class 'str'>duration_ms:<class 'int'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
méthode add_event
set_attributes. OpenTelemetry est en train d’abandonner progressivement l’API Span Event (Span.add_event). add_event fonctionne toujours et les données d’événements de span existantes restent valides. Voir https://opentelemetry.io/blog/2026/deprecating-span-events/.
méthode set_attributes
span.set_attributes({"weave.tag": "value"}). Équivalent de Span.set_attributes d’OTel.
Doit être appelée entre le début et la fin du span, c’est-à-dire à l’intérieur d’un bloc with. En dehors de cet intervalle, l’appel n’a aucun effet (no-op) et journalise un avertissement. Pour une ingestion par lots, renseignez directement les champs déclarés de l’objet, puis passez-le à log_turn / log_conversation.
classe Turn
Un échange entre l’utilisateur et l’agent. Correspond à un span OTel invoke_agent.
Par défaut, chaque tour de conversation démarre sa propre trace OTel (continue_parent_trace=False) : l’onglet Agents affiche donc une trace par tour de conversation. Définissez continue_parent_trace=True sur la Conversation (ou directement sur le Turn) lorsqu’une trace externe est déjà active et que vous souhaitez y imbriquer l’appel d’agent — par exemple, dans une requête instrumentée par fastapi.
Champs Pydantic :
agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>system_instructions:list[str]messages:list[conversation.types.Message]spans:list[conversation.conversation.LLM | conversation.conversation.Tool | conversation.conversation.SubAgent]continue_parent_trace:<class 'bool'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
méthode add_event
set_attributes. OpenTelemetry abandonne progressivement l’API Span Event (Span.add_event). add_event fonctionne toujours et les données d’événements de span existantes restent valides. Voir https://opentelemetry.io/blog/2026/deprecating-span-events/.
méthode llm
_current_llm afin que le LLM soit accessible via get_current_llm(), qu’un gestionnaire de contexte soit utilisé ou non.
méthode model_post_init
méthode record
system_instructions, agent_id, …). Seuls les champs explicitement transmis (non None) sont appliqués ; les valeurs existantes sont conservées. messages remplace les messages existants du tour de conversation (contrairement à Turn.user(...), qui ajoute un seul message). Renvoie self pour permettre le chaînage. Fonctionne comme LLM.record.
Remarque : sur le chemin de streaming (with), le span du tour de conversation est nommé d’après agent_name lors de __enter__. Si le nom du span doit refléter agent_name, définissez-le donc via start_turn plutôt que via record ; record met tout de même à jour l’attribut gen_ai.agent.name.
méthode set_attributes
span.set_attributes({"weave.tag": "value"}). Reproduit la méthode Span.set_attributes d’OTel.
Doit être appelée entre le début et la fin du span, c.-à-d. à l’intérieur d’un bloc with. En dehors de cet intervalle, l’appel est sans effet (no-op) et journalise un avertissement. Pour une ingestion par lot, renseignez directement les champs déclarés de l’objet et passez-le à log_turn / log_conversation.
méthode subagent
méthode tool
méthode user
classe Usage
Utilisation des jetons d’un appel LLM.
Champs Pydantic :
input_tokens:<class 'int'>output_tokens:<class 'int'>reasoning_tokens:<class 'int'>cache_creation_input_tokens:<class 'int'>cache_read_input_tokens:<class 'int'>
fonction add_tags
fonction as_op
-
obj_ref: Référence à la version de l’objet, soit un ObjectRef (renvoyé par weave.publish()), soit une chaîne URI weave ///. -
tags: Liste des chaînes de tags à ajouter. Arguments : -
fn: Une fonction décorée avec weave.op. Retourne : L’Op de la fonction.
fonction attributes
fonction end_conversation
fonction end_llm
fonction end_session
weave.end_conversation.
fonction end_turn
fonction finish
fonction get
uri: une URI de réf. Weave entièrement qualifiée. Retourne : L’objet.
fonction get_aliases
obj_ref: Référence à la version de l’objet, soit un ObjectRef, soit une chaîne URI weave ///. Retourne : Liste d’alias de type string.
fonction get_client
fonction get_current_call
Le dictionnaireattributesdu Call renvoyé devient immuable dès que l’appel démarre. Utilisez :func:weave.attributespour définir les métadonnées de l’appel avant d’invoquer un Op. Le champsummarypeut être mis à jour pendant l’exécution de l’Op et sera fusionné avec les informations de synthèse calculées lorsque l’appel se terminera.
fonction get_current_conversation
fonction get_current_llm
fonction get_current_session
weave.get_current_conversation.
fonction get_current_turn
fonction get_tags
obj_ref: Référence à la version de l’objet, sous la forme d’un ObjectRef ou d’une URI string weave ///. Retourne : Liste de tags sous forme de strings.
fonction get_tags_and_aliases
obj_ref: référence à la version de l’objet, sous la forme d’un ObjectRef ou d’une URI weave:/// de type string. Retourne : Un tuple (tags, alias). Chaque élément est une liste de string.
fonction init
project_name: le nom de l’équipe et du projet Weights & Biases dans lesquels journaliser les données. Si vous ne spécifiez pas d’équipe, votre entity par défaut est utilisé. Pour trouver ou modifier votre entity par défaut, référez-vous à la page Paramètres utilisateur de la documentation W&B Models.settings: configuration générale du client Weave. Peut être une instance de UserSettings ou un dict contenant l’une des clés suivantes (toutes facultatives). Tous les paramètres peuvent également être configurés par des variables d’environnement avec le préfixe WEAVE_ (par exemple, WEAVE_DISABLED=true). Paramètres disponibles : -disabled(bool) : désactive le traçage de toutes les fonctions. Par défaut :False-print_call_link(bool) : affiche dans le terminal des liens vers l’interface Weave pour les ops. Par défaut :True-log_level(str) : définit le type d’informations à journaliser (DEBUG,INFO,WARNING,ERROR,CRITICAL). Par défaut :INFO-display_viewer(str) : détermine la façon dont Weave affiche les objets dans la console (auto,rich,print). Par défaut :auto-capture_code(bool) : capture le code des ops tracés dans votre projet Weave. Par défaut :True-implicitly_patch_integrations(bool) : patche automatiquement les bibliothèques prises en charge. Par défaut :True-redact_pii(bool) : analyse toutes les données de trace à la recherche d’informations sensibles, comme les adresses e-mail, les numéros de téléphone et les numéros de carte bancaire, et les remplace par des valeurs de substitution avant l’envoi au serveur. Nécessite les paquets presidio-analyzer et presidio-anonymizer.Default:False-redact_pii_fields(list[str]) : indique les types d’entités PII à masquer lorsqueredact_piivaut True. Si la liste est vide, l’ensemble par défaut de Presidio est utilisé. Exemples : [‘EMAIL’,‘PHONE_NUMBER’,‘CREDIT_CARD’,‘US_SSN’]. Voir la liste complète à l’adresse https://microsoft.github.io/presidio/supported_entities/Default:[]-redact_pii_exclude_fields(list[str]) : types d’entités PII à exclure. Par défaut :[]-capture_client_info(bool) : capture les informations de version de Python/du SDK. Par défaut :True-capture_system_info(bool) : capture les informations sur le système d’exploitation. Par défaut :True-client_parallelism(int) : nombre de workers pour les ops en arrière-plan. Par défaut :auto-use_server_cache(bool) : active la mise en cache locale sur disque des réponses du serveur. -server_cache_size_limit(int) : taille maximale du cache, en octets. Par défaut :1_000_000_000-server_cache_dir(str) : répertoire du cache du serveur. Par défaut :temporary-scorers_dir(str) : répertoire des points de contrôle des modèles d’évaluateurs. Par défaut :~/.cache/wandb/weave-scorers-max_calls_queue_size(int) : taille maximale de la file d’attente (0 = illimitée). Par défaut :100_000-retry_max_interval(float) : intervalle maximal entre les nouvelles tentatives, en secondes. Par défaut :300-retry_max_attempts(int) : nombre maximal de nouvelles tentatives. Par défaut :3-enable_disk_fallback(bool) : écrit sur le disque les éléments rejetés. Par défaut :True-use_parallel_table_upload(bool) : active le téléversement parallèle par fragments pour les tableaux volumineux. Si False, les tableaux sont téléversés séquentiellement, en fragments plus petits.Default:True-http_timeout(float) : délai maximal, en secondes, accordé aux requêtes HTTP pour se terminer. Ce délai inclut le temps de connexion, le transfert des données et le traitement côté serveur. Augmentez cette valeur si le réseau est lent ou si vous manipulez des charges utiles volumineuses.Default:30.0-use_stainless_server(bool) : utilise le client HTTP généré par Stainless, qui offre une meilleure sûreté de typage, de nouvelles tentatives automatiques et une gestion des erreurs améliorée. Cette fonctionnalité est expérimentale et pourrait devenir le comportement par défaut dans de futures versions.Default:False-use_calls_complete(bool) : utilise un chemin d’écriture optimisé qui regroupe les données complètes d’un appel (début et fin) dans une seule requête, plutôt que dans des requêtes de début et de fin distinctes. Cela réduit la charge du serveur et améliore les performances, en particulier pour les ops de courte durée.Default:True-use_otel_v2: (bool) : Achemine les intégrations compatibles OTel via leur variante OTel.Par défaut:Trueautopatch_settings: (Obsolète) Configuration des intégrations d’autopatch. Utilisez plutôt le patching explicite.postprocess_inputs: fonction appliquée aux entrées de chaque op tracé par ce client.postprocess_output: fonction appliquée à la sortie de chaque op tracé par ce client.attributes: un dictionnaire d’attributs appliqués à chaque trace produite par ce client. Retourne : Un client Weave.
fonction link_prompt_to_registry
-
prompt: un prompt publié, unObjectRefou une string d’URI weave ///… entièrement qualifiée. -
target_path: chemin de destination dans le registre, au format<registry_project>/<portfolio_name>, par exemplewandb-registry-prompts/my-prompt-collection. -
aliases: alias facultatifs à joindre à la version créée dans le registre. Retourne : -
LinkAssetToRegistryRes: réponse analysée renvoyée par le point de terminaison registry-link.
fonction list_aliases
fonction list_tags
fonction log_call
op(str) : Le nom de l’opération à journaliser. Il sera utilisé comme op_name de l’appel. Les opérations anonymes (strings ne faisant pas référence à des ops publiés) sont prises en charge.inputs(dict[str, Any]) : Un dictionnaire des paramètres d’entrée de l’opération.output(Any) : La sortie/le résultat de l’opération.parent(Call | None) : Appel parent facultatif dans lequel imbriquer cet appel. S’il n’est pas fourni, l’appel sera un appel de niveau racine (ou imbriqué dans le contexte d’appel actuel, s’il existe). Par défaut : None.attributes(dict[str, Any] | None) : Métadonnées facultatives à joindre à l’appel. Elles sont figées une fois l’appel créé. Par défaut : None.display_name(str | Callable[[Call], str] | None) : Nom d’affichage facultatif de l’appel dans l’interface utilisateur. Peut être une string ou un callable qui prend l’appel et renvoie une string. Par défaut : None.use_stack(bool) : Indique s’il faut empiler l’appel sur la pile du runtime. Si True, l’appel sera disponible dans le contexte d’appel et accessible via weave.require_current_call(). Si False, l’appel est journalisé mais n’est pas ajouté à la pile d’appels. Par défaut : True.exception(BaseException | None) : Exception facultative à journaliser si l’opération a échoué. Par défaut : None.
Call: L’objet Call créé et terminé, avec les informations de trace complètes.
.spans de chaque Turn fournit ses enfants. Génère automatiquement conversation_id s’il est vide. Par défaut, chaque tour de conversation dispose de sa propre trace OTel. agent_name / model / agent_id / agent_description / agent_version sont des valeurs par défaut au niveau de la conversation — la valeur propre à un Turn est prioritaire ; la valeur de la conversation n’est utilisée que si le Turn ne la renseigne pas. Le paramètre continue_parent_trace de la conversation s’applique à chaque tour de conversation (tout continue_parent_trace défini au niveau d’un Turn est ici volontairement ignoré).
Les attributes sont apposés sur chaque span émis. Utilisez des clés personnalisées, hors conventions sémantiques (semconv) : une clé qui entre en conflit avec un attribut gen_ai.* / weave.* propre à un span n’est pas prise en charge (la valeur retenue dépend du chemin d’exécution).
fonction log_session
weave.log_conversation.
session_id / session_name correspondent respectivement à conversation_id / conversation_name.
fonction log_turn
started_at / ended_at définis ; les horodatages des spans OTel émis proviennent de ces champs. Si le tour de conversation ne fournit pas ses propres horodatages, l’horodatage le plus ancien/le plus récent des enfants est utilisé, puis now() à défaut. agent_id / agent_description / agent_version se comportent comme dans le chemin de streaming.
Les attributes sont appliqués à chaque span émis ; le chemin de streaming, lui, les lit à partir de la conversation active. Utilisez des clés personnalisées, hors conventions sémantiques : une clé qui entre en conflit avec un attribut gen_ai.* / weave.* propre à un span n’est pas prise en charge (la valeur retenue dépend du chemin).
fonction op
fonction otel_traces_endpoint
func: fonction à décorer.name: nom personnalisé de l’op. Par défaut, le nom de la fonction.call_display_name: nom d’affichage des appels ; peut être une string ou un callable.postprocess_inputs: fonction qui transforme les entrées avant la journalisation.postprocess_output: fonction qui transforme la sortie avant la journalisation.tracing_sample_rate: fraction des appels à tracer (de 0.0 à 1.0).enable_code_capture: indique s’il faut capturer le code source de cette op.accumulator: fonction qui accumule les résultats des ops en streaming.attributes: attributs par défaut fusionnés dans chaque appel créé par cette op, avec la priorité la plus faible. Un contexteweave.attributes()et des attributs par appel explicites les redéfinissent en cas de conflit de clé. La clé réservée “weave” ne peut pas être définie ici.eager_call_start: si True, les débuts d’appel sont envoyés immédiatement plutôt que par lots. Utile pour les opérations de longue durée, comme les évaluations, qui doivent apparaître immédiatement dans l’interface utilisateur. Arguments :
fonction publish
-
base_url: URL de base du trace server. Valeur par défaut :weave_trace_server_url(). Arguments : -
obj: l’objet à enregistrer et à versionner. -
name: le nom sous lequel enregistrer l’objet. -
tags: liste facultative de tags à ajouter à la version d’objet publiée. -
aliases: liste facultative d’alias à définir sur la version d’objet publiée. Retourne : Une réf. Weave vers l’objet enregistré.
fonction ref
location: URI de réf. Weave ou, siweave.init()a été appelé,name:versionouname. Si aucune version n’est fournie,latestest utilisé. Retourne : Une réf. Weave vers l’objet.
fonction remove_aliases
fonction remove_tags
obj_ref: Référence à l’objet, soit un ObjectRef, soit une string URI weave ///.alias: Nom d’alias ou liste de noms d’alias à supprimer. Arguments :
fonction require_current_call
get_call du WeaveClient renvoyé par weave.init pour récupérer l’objet Call.
call de votre op après l’avoir défini. Par exemple :
obj_ref: référence à la version de l’objet, soit un ObjectRef, soit une string d’URI weave ///.tags: liste des strings de tag à supprimer. Retourne : L’objet Call de l’op en cours d’exécution
NoCurrentCallError: si le suivi n’a pas été initialisé ou si cette méthode est appelée en dehors d’un op.
fonction set_aliases
fonction set_view
_weave.views.<name>.
-
obj_ref: Référence à la version de l’objet, sous la forme d’un ObjectRef ou d’une URI string weave ///. -
alias: Nom d’alias ou liste de noms d’alias à définir (par exemple, « production »). Arguments : -
name: Nom de la vue (clé soussummary._weave.views). -
content: Instanceweave.Contentou string brute. Les strings sont encapsulées viaContent.from_textà l’aide de l’extension ou du type MIME fourni. -
extension: Extension de fichier facultative à utiliser lorsquecontentest une string. -
mimetype: Type MIME facultatif à utiliser lorsquecontentest une string. -
metadata: Métadonnées facultatives à joindre lors de la création deContentà partir de texte. -
encoding: Encodage de texte à appliquer lors de la création deContentà partir de texte. Retourne : None
import weave
weave.init(“proj”) @weave.op … def foo(): … weave.set_view(“readme”, ”# Hello”, extension=“md”) … return 1 foo()
fonction start_conversation
attributes sont apposés sur chaque span émis par cette conversation (par exemple, une identité d’intégration comme weave.integration.*). Utilisez des clés personnalisées, hors conventions sémantiques (semconv) : pour les champs des conventions sémantiques, passez par les paramètres typés (conversation_name, model, …). Une clé qui entre en conflit avec un attribut gen_ai.* / weave.* propre à un span n’est pas prise en charge ; la valeur retenue dépend du chemin d’exécution (streaming ou log_turn).
fonction start_llm
provider_name. Le SDK ne le déduit pas de l’identifiant du modèle : une déduction fondée sur le préfixe attribue à tort les modèles issus d’un fine-tuning effectué par l’utilisateur (par exemple, un modèle nommé text-...) et inscrit dans la télémétrie des hypothèses sur les futurs noms de modèles, qu’il est coûteux de corriger a posteriori.
fonction start_session
weave.start_conversation.
session_id / session_name correspondent respectivement à conversation_id / conversation_name.
fonction start_subagent
start_tool : le contexte OTel gère la propagation parent-enfant, sans qu’aucune délégation explicite soit nécessaire.
fonction start_tool
fonction start_turn
get_current_turn() renverra None. Utilisez plutôt conversation.start_turn() si vous avez besoin d’un accès entre modules reposant sur la contextvar.
fonction thread
-
thread_id: identifiant du thread à associer aux appels dans ce contexte. S’il n’est pas fourni, un UUID v7 est généré automatiquement. S’il vaut None, le suivi des threads est désactivé. Génère : -
ThreadContext: objet donnant accès à thread_id et au turn_id actuel.