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
méthode de classe preprocess_field_schema
méthode de classe 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
Une classe qui représente 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 (prend actuellement en charge ‘wav’ ou ‘mp3’)data: Les données audio brutes sous forme d’octets
-
data: Les données audio (octets ou chaîne 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
méthode de classe from_data
-
path: Chemin où écrire le fichier audio Arguments : -
data: Données audio sous forme d’octets ou de chaîne encodée en base64 -
format: Format audio (‘wav’ ou ‘mp3’) Retourne : -
Audio: Une nouvelle instance de Audio
ValueError: Si le format n’est pas pris en charge
méthode de classe from_path
-
path: Chemin vers un fichier audio (doit avoir l’extension .wav ou .mp3) 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 classificateur.
Les moniteurs de classificateur combinent 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
méthode de classe from_obj
méthode get_prompt_footer
méthode get_prompt_header
classe Content
Une classe qui représente du contenu provenant de différentes sources, en le convertissant en une représentation unifiée sous forme d’octets, avec les métadonnées associées.
Cette classe doit être instanciée à l’aide de l’une de ses méthodes de classe :
- 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 la valeur est en base64, les données sont réencodées en octets base64, puis décodées en chaîne ASCII.
Retourne :
str.
méthode de classe from_base64
méthode de classe from_bytes
méthode de classe from_data_url
méthode de classe from_path
méthode de classe from_text
méthode de classe from_url
méthode de classe model_validate
méthode de classe model_validate_json
méthode open
bool: True si le fichier a été ouvert avec succès, False sinon.
méthode save
méthode serialize_data
méthode to_data_url
-
dest: Chemin de destination vers lequel le fichier sera copié (chaîne de caractères 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 ex. .txt), la destination sera considérée comme un répertoire. Arguments : -
use_base64: Si True, les données seront encodées en base64. Sinon, elles seront encodées par pourcentage. La valeur par défaut est True. Retourne : Une chaîne contenant une URL de données.
classe Dataset
Objet dataset facile à enregistrer, avec 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.
méthode de classe convert_to_table
méthode de classe from_calls
méthode de classe from_hf
méthode de classe from_obj
méthode de classe from_pandas
méthode select
indices: Un itérable d’indices entiers indiquant quelles 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 en une seule chaîne.propriété is_bound
propriété messages
espaces réservés de propriété
propriété system_message
Regroupe tous les messages en un message de prompt système.propriété system_prompt
Regroupe tous les messages en 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
méthode de classe from_obj
méthode de classe load
méthode de classe 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
class Evaluation
Configure une évaluation comprenant un ensemble d’évaluateurs et un jeu de données.
L’appel à evaluation.evaluate(model) transmet les lignes d’un jeu de données à un modèle en faisant correspondre les noms des colonnes du jeu de données aux noms des arguments de model.predict.
Ensuite, tous les évaluateurs sont appelés et les résultats sont enregistrés dans Weave.
Si vous souhaitez prétraiter les lignes du jeu de données, vous pouvez passer 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 0x7f1615b1b600>, 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
méthode de classe from_obj
méthode get_eval_results
méthode get_evaluate_calls
CallsIter plutôt qu’un appel unique, car il peut y avoir plusieurs appels d’évaluation pour une seule évaluation (par exemple, si vous exécutez plusieurs fois la même évaluation).
Retourne :
CallsIter: Un itérateur sur des objets Appel représentant des Runs d’évaluation.
ValueError: Si l’évaluation n’a pas de ref (elle n’a pas encore été enregistrée/exécutée).
méthode get_score_calls
dict[str, list[Call]]: Un dictionnaire qui associe les ID de trace à des listes d’objets Appel du scorer. Chaque ID de trace représente un Run d’Évaluation, et la liste contient tous les appels du scorer exécutés pendant ce Run.
méthode get_scores
dict[str, dict[str, list[Any]]]: Une structure de dictionnaire imbriquée où :- Les clés du premier niveau sont les ID de trace (Runs d’évaluation)
- Les clés du deuxième niveau sont les noms des scorers
- Les valeurs sont des listes de résultats de scorer pour ce Run et ce scorer
méthode model_post_init
méthode predict_and_score
méthode summarize
class EvaluationLogger
Cette classe fournit une interface impérative pour enregistrer des évaluations.
Une évaluation démarre automatiquement lorsque la première prédiction est enregistrée via la méthode log_prediction, et se termine lorsque la méthode log_summary est appelée.
Chaque fois que vous enregistrez une prédiction, vous obtenez un objet ScoreLogger. Vous pouvez utiliser cet objet pour enregistrer les scores et les métadonnées de cette prédiction. Pour plus d’informations, voir la classe ScoreLogger.
Utilisation de base - enregistrez directement les prédictions avec les entrées et les sorties :
méthode __init__
attributs de la propriété
propriété 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 à leurs scores Exemple :
méthode log_prediction
inputs: Les données d’entrée de la prédictionoutput: La valeur de sortie. La valeur par défaut est None. Peut être définie plus tard avec pred.output. Retourne : ScoreLogger pour journaliser les scores et, éventuellement, 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 comme objet dans le projet et inscrit son URI de référence sous summary.weave.views.<name> pour l’appel evaluate de l’évaluation. Les entrées de type chaîne sont encapsulées en contenu texte à l’aide de Content.from_text avec l’extension ou le type MIME fourni.
Arguments :
name: Le nom de la vue à afficher, utilisé comme clé soussummary.weave.views.content: Une instance deweave.Contentou une chaîne à sérialiser.extension: Extension de fichier facultative pour les entrées de contenu de type chaîne.mimetype: Type MIME facultatif pour les entrées de contenu de type chaîne.metadata: Métadonnées facultatives associées auContentnouvellement créé.encoding: Encodage du texte pour les entrées de contenu de type chaîne. Retourne : None
import weave
ev = weave.EvaluationLogger() ev.set_view(“report”, ”# Report”, extension=“md”)
class File
Classe représentant un fichier avec son chemin, son type MIME et sa taille.
méthode __init__
propriété filename
Obtient le nom du fichier.-
path: Chemin vers le fichier (string ou pathlib.Path) -
mimetype: Type MIME facultatif du fichier ; sera 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
class LLM
Un appel d’API à un LLM. Correspond à un span OTel de chat.
-
dest: chemin de destination vers lequel le fichier sera copié (stringoupathlib.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 'session.types.Usage'> -
reasoning:<class 'session.types.Reasoning'> -
finish_reasons:list[str] -
input_messages:list[session.types.Message] -
output_messages:list[session.types.Message] -
media_attachments:list[session.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 attach_media
méthode attach_media_url
attach_media pour le cas courant où l’appelant dispose d’une chaîne URL provenant d’un message en amont et ne veut pas l’inspecter. Les URL data: sont analysées en mime_type + contenu en ligne (kind=blob) ; les URI simples deviennent kind=uri. 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 afin de garder un point d’enregistrement compact.
Seuls les champs explicitement transmis (non-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 le chaînage.
méthode think
classe LogResult
Résultat d’un appel log_* batch.
Champs Pydantic :
session_id:<class 'str'>trace_ids:list[str]root_span_ids:list[str]span_count:<class 'int'>
classe Markdown
Un objet Markdown affichable.
Arguments :
markup(str): Une chaîne contenant du Markdown.code_theme(str, facultatif): Thème Pygments pour les blocs de code. La valeur par défaut est “monokai”. Voir https://pygments.org/styles/ pour les thèmes de code.justify(JustifyMethod, facultatif): Valeur de justification des paragraphes. La valeur par défaut est None.style(Union[str, Style], facultatif): Style facultatif à appliquer au Markdown.hyperlinks(bool, facultatif): Active les liens hypertexte. La valeur par défaut estTrue.
méthode __init__
classe MediaAttachment
Une pièce jointe multimédia dans un appel LLM.
-
inline_code_lexer: (str, facultatif) : lexer à 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 ne pas appliquer de coloration. Valeur par défaut : None. champs Pydantic : -
kind:typing.Literal['blob', 'uri', 'file'] -
modality:<class 'str'> -
mime_type:<class 'str'> -
content:bytes | str -
uri:<class 'str'> -
file_id:<class 'str'>
classe Message
Un message dans une conversation.
Deux styles de construction sont pris en charge :
-
À plat (rétrocompatibilité, pratique pour le texte brut) :
Message(role="assistant", content="Hi there") -
Avec parties explicites (plus riche — prend en charge les appels d’outil, le raisonnement et le texte combinés, 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 s’agit de la représentation canonique. Lorsqu’il est vide, le sérialiseur synthétise un unique TextPart (ou ToolCallResponsePart pour role="tool") à partir des champs à plat.
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[session.types.TextPart | session.types.ReasoningPart | session.types.ToolCallPart | session.types.ToolCallResponsePart | session.types.BlobPart | session.types.UriPart | session.types.FilePart, FieldInfo(annotation=NoneType, required=True, discriminator='type')]]
méthode de classe assistant
tool_calls lorsque l’assistant demande 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 de conversation les affiche en ligne.
méthode de classe system
méthode de classe tool_result
output peut être une chaîne, un dictionnaire, une liste, une valeur scalaire ou None — le ToolCallResponsePart sous-jacent encode en JSON les valeurs qui ne sont pas des chaînes.
méthode de classe user
classe MessagesPrompt
méthode __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonemessages:list[dict]
méthode format
méthode format_message
méthode de classe from_obj
classe Model
Conçue pour représenter une combinaison de code et de données qui opère sur une entrée. Par exemple, elle 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éfinissent votre modèle, ces changements seront enregistrés et la version sera mise à jour. Cela vous permet de comparer les prédictions entre différentes versions de votre modèle. Utilisez cette classe pour itérer sur les prompts ou essayer le dernier LLM, puis comparer les prédictions dans différentes configurations.
Exemples :
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | None
méthode get_infer_method
classe Monitor
Configure un moniteur pour attribuer automatiquement un score aux appels entrants.
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
méthode de classe from_obj
classe Object
Classe de base pour les objets de Weave qui peuvent être suivis et versionnés.
Cette classe étend le BaseModel de Pydantic afin de fournir des fonctionnalités propres à Weave pour le suivi des objets, leur référencement et leur sérialisation. Les objets peuvent avoir des noms, des descriptions et des références, ce qui permet de les stocker dans le système Weave et de les en récupérer.
Attributs :
name(str | None): Nom lisible par l’humain 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
méthode de classe from_uri
uri(str): L’URI Weave qui pointe vers l’objet.objectify(bool): Indique si le résultat doit être converti en objet. 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.
méthode de classe handle_relocatable_object
v(Any): La valeur à valider.handler(ValidatorFunctionWrapHandler): Le gestionnaire de validation pydantic standard.info(ValidationInfo): Les informations de contexte de validation.
Any: L’instance d’objet validée.
Lorsqu’un ObjectRef est passé
Lorsqu’un WeaveObject est passé
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 à l’API fluide permettant de manipuler des objets SavedView.
méthode __init__
propriété entité
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
méthode de classe 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
méthode de classe from_obj
méthode model_post_init
méthode score
méthode summarize
classe Session
Une session de 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 session. La valeur par défaut False signifie que chaque tour de conversation démarre sa propre trace OTel (le bon choix pour la vue autonome de l’onglet Agents). Définissez True lorsque l’application a une trace englobante (par exemple, une requête FastAPI instrumentée) qui doit contenir l’invocation de l’agent.
Champs Pydantic :
session_id:<class 'str'>session_name:<class 'str'>agent_name:<class 'str'>model:<class 'str'>include_content:<class 'bool'>continue_parent_trace:<class 'bool'>
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. Propage continue_parent_trace à partir de cette session.
classe StringPrompt
méthode __init__
name:str | Nonedescription:str | Noneref:trace.refs.ObjectRef | Nonecontent:<class 'str'>
méthode format
méthode de classe from_obj
classe SubAgent
Un appel d’agent délégué au sein d’un tour de conversation.
Correspond à un span OTel imbriqué invoke_agent 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'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
méthode end
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 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 n’est pas idéal. Cette classe automatise la copie des contextvars, de sorte que l’utilisation de ce thread “fonctionne tout simplement”, comme l’utilisateur s’y attend probablement.
Vous pouvez obtenir le même effet sans cette classe en écrivant plutôt :
méthode __init__
propriété daemon
Valeur booléenne indiquant si ce thread est un thread démon. Cette valeur doit être définie avant l’appel à start(), sinon une RuntimeError est levée. Sa valeur initiale est héritée du thread qui l’a créé ; le thread principal n’est pas un thread démon et, par conséquent, tous les threads créés dans le thread principal ont par défaut la valeur daemon = False. L’ensemble du programme Python se termine lorsqu’il ne reste plus que des threads démons.propriété 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.propriété nom
Une chaîne utilisée uniquement à des fins d’identification. Ce nom n’a pas de signification particulière. Plusieurs threads peuvent recevoir le même nom. Le nom initial est défini par le constructeur.propriété native_id
Identifiant natif entier de ce thread, ou None s’il n’a pas été démarré. Il s’agit d’un entier non négatif. Voir la fonction get_native_id(). Il correspond à l’ID du thread tel que rapporté 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__
propriété thread_id
Renvoie lethread_id de ce contexte.
thread_id: l’identifiant du thread pour ce contexte, ou None s’il est désactivé. Retourne : L’identifiant du thread, ou None si le suivi du thread est désactivé.
propriété turn_id
Obtient le turn_id actuel 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.
Il s’agit d’un remplacement direct de concurrent.futures.ThreadPoolExecutor qui garantit que les appels Weave se comportent comme prévu au sein de 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 parent, ce qui peut entraîner la perte du contexte d’appel — ce n’est pas souhaitable ! Cette classe automatise la copie des contextvars, de sorte que l’utilisation de cet exécuteur “fonctionne tout simplement”, comme l’utilisateur s’y attend probablement.
Vous pouvez obtenir le même effet sans cette classe en écrivant plutôt :
méthode __init__
méthode map
méthode submit
classe Tool
Une exécution d’outil. Correspond au span OTel execute_tool.
arguments et result utilisent l’annotation JSONString : le code appelant peut attribuer un dict / une liste / un scalaire, et le SDK l’encode en JSON lors de l’instanciation ou de l’attribution. La valeur stockée est toujours une chaîne, conformément au format de transmission défini par la semconv 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 end
classe Turn
Un échange entre un utilisateur et un agent. Correspond à un span OTel invoke_agent.
Par défaut, chaque tour de conversation démarre sa propre trace OTel (continue_parent_trace=False), de sorte que l’onglet Agents affiche une trace par tour de conversation. Définissez continue_parent_trace=True sur la Session (ou directement sur le Turn) lorsqu’une trace parente externe est déjà active et que vous souhaitez y imbriquer l’invocation de l’agent — par exemple, dans une requête FastAPI instrumentée.
Champs Pydantic :
agent_name:<class 'str'>model:<class 'str'>agent_id:<class 'str'>agent_description:<class 'str'>agent_version:<class 'str'>messages:list[session.types.Message]spans:list[session.session.LLM | session.session.Tool | session.session.SubAgent]continue_parent_trace:<class 'bool'>started_at:datetime.datetime | Noneended_at:datetime.datetime | None
méthode end
méthode llm
_current_llm pour 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 subagent
invoke_agent imbriqué, dans la même trace).
méthode tool
méthode user
classe Utilisation
Utilisation des jetons pour 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 d’URI weave ///. -
tags: Liste des chaînes de tag à ajouter. Arguments : -
fn: Une fonction décorée avec @weave.op. Retourne : L’Op de la fonction.
fonction attributes
fonction end_llm
fonction end_session
fonction end_turn
fonction finish
weave.op ne seront plus enregistrés. Vous devrez exécuter weave.init() de nouveau pour reprendre la journalisation.
fonction get
uri: Un URI de référence Weave complet. Retourne : L’objet.
fonction get_aliases
obj_ref: Référence de la version de l’objet, sous la forme d’un ObjectRef ou d’une chaîne d’URI weave ///. Retourne : Liste de chaînes d’alias.
fonction get_client
fonction get_current_call
Le dictionnaireattributesde l’Appel renvoyé devient immuable une fois l’appel lancé. 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 résumé calculées à la fin de l’appel.
fonction get_current_llm
contextvar, ou None.
fonction get_current_session
fonction get_current_turn
fonction get_tags
obj_ref: Référence à la version de l’objet, soit unObjectRef, soit une chaîne URIweave:///. Retourne : Liste de chaînes de tags.
fonction get_tags_and_aliases
obj_ref: Référence à la version de l’objet, soit un ObjectRef, soit une chaîne d’URI weave ///. Retourne : Un tuple (tags, alias). Chacun est une liste de chaînes.
fonction init
project_name: Le nom de l’équipe Weights & Biases et du projet dans lesquels enregistrer les journaux. Si vous ne spécifiez pas d’équipe, votre entité par défaut est utilisée. Pour trouver ou mettre à jour votre entité par défaut, référez-vous à Paramètres utilisateur dans la documentation W&B Models.settings: Configuration générale du client Weave. Peut être une instance de UserSettings ou un dictionnaire contenant l’une des clés suivantes (toutes facultatives). Tous les paramètres peuvent également être configurés via des variables d’environnement à l’aide du préfixe WEAVE_ (par exemple, WEAVE_DISABLED=true). Paramètres disponibles : -disabled(bool) : Désactive les traces sur toutes les fonctions. Par défaut :False-print_call_link(bool) : Affiche dans le terminal des liens vers l’interface Weave pour les opérations. 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) : Contrôle la manière dont Weave affiche les objets dans la console (auto,rich,print). Par défaut :auto-capture_code(bool) : Capture le code des opérations tracées dans votre projet Weave. Par défaut :True-implicitly_patch_integrations(bool) : Applique automatiquement des patchs aux 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 e-mails, les numéros de téléphone et les cartes de crédit, puis les remplace par des valeurs de substitution avant l’envoi au serveur. Nécessite les packages presidio-analyzer et presidio-anonymizer.Default:False-redact_pii_fields(list[str]): Spécifie quels types d’entités PII masquer lorsqueredact_piiest défini sur True. Si vide, le jeu 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/Par défaut:[]-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 et du SDK. Par défaut :True-capture_system_info(bool) : Capture les informations du système d’exploitation. Par défaut :True-client_parallelism(int) : Nombre de workers pour les opérations 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) : Limite de taille du cache en octets. Par défaut :1_000_000_000-server_cache_dir(str) : Répertoire du cache serveur. Par défaut :temporary-scorers_dir(str) : Répertoire des points de contrôle de modèle des évaluateurs. Par défaut :~/.cache/wandb/weave-scorers-max_calls_queue_size(int) : Taille maximale de la file d’attente (0 = sans limite). Par défaut :100_000-retry_max_interval(float) : Intervalle maximal entre les tentatives, en secondes. Par défaut :300-retry_max_attempts(int) : Nombre maximal de tentatives. Par défaut :3-enable_disk_fallback(bool) : Écrit les éléments abandonnés sur disque. Par défaut :True-use_parallel_table_upload(bool) : Active le téléversement parallèle par fragments pour les grands tableaux. Si False, les tableaux sont téléversés séquentiellement en fragments plus petits.Default:True-http_timeout(float): Temps d’attente maximal, en secondes, pour l’exécution des requêtes HTTP. Cela inclut le temps de connexion, le transfert des données et le traitement côté serveur. Augmentez cette valeur pour les réseaux lents ou lorsque vous travaillez avec 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écurité de typage, des réessais automatiques et une gestion des erreurs améliorée. Cette fonctionnalité est expérimentale et pourrait devenir la valeur par défaut dans de futures versions.Default:False-use_calls_complete(bool): Utilise un mode d’écriture optimisé qui regroupe les données d’appel complètes (début et fin) dans une seule requête au lieu de 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 opérations de courte durée.Default:Trueautopatch_settings: (Obsolète) Configuration des intégrations autopatch. Utilisez plutôt un patching explicite.postprocess_inputs: Une fonction appliquée aux entrées de chaque op dont ce client effectue le traçage.postprocess_output: Une fonction appliquée au résultat de chaque op tracée par ce client.attributes: 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 chaîne URIweave ///...pleinement qualifiée. -
target_path: Chemin de destination du registre au format<registry_project>/<portfolio_name>, par exemplewandb-registry-prompts/my-prompt-collection. -
aliases: Alias facultatifs à associer à la version du registre créée. Retourne : -
LinkAssetToRegistryRes: Réponse analysée du point de terminaisonregistry-link.
fonction list_aliases
fonction list_tags
fonction log_call
op(str): Le nom de l’opération à journaliser. Il sera utilisé commeop_namepour l’appel. Les opérations anonymes (chaînes ne faisant pas référence à des ops publiées) sont prises en charge.inputs(dict[str, Any]): Un dictionnaire des paramètres d’entrée de l’opération.output(Any): La sortie ou le résultat de l’opération.parent(Appel | None): Appel parent facultatif sous 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 en existe un). La valeur par défaut est None.attributes(dict[str, Any] | None): Métadonnées facultatives à attacher à l’appel. Elles sont figées une fois l’appel créé. La valeur par défaut est None.display_name(str | Callable[[Appel], str] | None): Nom d’affichage facultatif pour l’appel dans l’UI. Peut être une chaîne ou un callable qui prend l’appel en argument et renvoie une chaîne. La valeur par défaut est None.use_stack(bool): Indique s’il faut placer l’appel sur la pile d’exécution. Lorsque la valeur est True, l’appel sera disponible dans le contexte d’appel et accessible via weave.require_current_call(). Lorsque la valeur est False, l’appel est enregistré mais n’est pas ajouté à la pile d’appels. La valeur par défaut est True.exception(BaseException | None): Exception facultative à journaliser si l’opération a échoué. La valeur par défaut est None.
Call: L’objet Appel créé et terminé, avec les informations de trace complètes.
.spans de chaque tour de conversation contient ses spans enfants. Génère automatiquement session_id si celui-ci est vide. Par défaut, chaque tour de conversation dispose de sa propre trace OTel.
fonction log_turn
started_at / ended_at défini ; les horodatages des spans OTel émis proviennent de ces champs. À défaut, les horodatages du span enfant le plus ancien et du plus récent sont utilisés, puis now(), lorsque le tour de conversation ne fournit pas les siens.
fonction op
fonction otel_traces_endpoint
func: La 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 chaîne 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 pour cet op.accumulator: Fonction qui accumule les résultats pour les ops en flux.eager_call_start: Si True, les démarrages d’appel sont envoyés immédiatement au lieu d’être regroupés par lots. Utile pour les opérations de longue durée, comme les évaluations, qui doivent être visibles immédiatement dans l’interface utilisateur. Arguments :
fonction publish
-
base_url: URL de base du trace server. 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 publiée de l’objet. -
aliases: Liste facultative d’alias à définir sur la version publiée de l’objet. Retourne : Une Ref Weave vers l’objet enregistré.
fonction ref
emplacement: un URI de Ref Weave ou, siweave.init()a été appelé,name:versionouname. Si aucune version n’est fournie,latestest utilisé. Retourne : une Ref Weave vers l’objet.
fonction remove_aliases
fonction remove_tags
obj_ref: Référence à l’objet, soit un ObjectRef, soit une chaîne d’URI Weave.alias: Un nom d’alias ou une liste de noms d’alias à supprimer. Arguments :
fonction require_current_call
get_call sur le WeaveClient renvoyé par weave.init pour récupérer l’objet Appel correspondant.
call. Par exemple :
obj_ref: Référence à la version de l’objet, soit un ObjectRef, soit une chaîne d’URIweave:///.tags: Liste des tags à supprimer. Retourne : L’objet Appel de l’Op en cours d’exécution
NoCurrentCallError: Si 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, soit unObjectRef, soit une chaîne d’URIweave:///. -
alias: Un nom d’alias ou une liste de noms d’alias à définir (par ex., “production”). Arguments : -
name: Le nom de la vue (clé danssummary._weave.views). -
content: Une instance deweave.Contentou une chaîne brute. Les chaînes sont encapsulées viaContent.from_textà l’aide de l’extension ou du type MIME fourni. -
extension: Extension de fichier facultative à utiliser lorsquecontentest une chaîne. -
mimetype: Type MIME facultatif à utiliser lorsquecontentest une chaîne. -
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_llm
provider_name. Le SDK ne l’infère pas à partir de l’ID du modèle : les déductions basées sur le préfixe attribuent à tort les modèles sur lesquels les utilisateurs ont effectué un fine-tuning (par exemple, un modèle nommé text-...) et intègrent à la télémétrie des hypothèses sur les futurs noms de modèles, qu’il est coûteux de corriger par la suite.
fonction start_session
fonction start_subagent
start_tool ; le contexte OTel gère la propagation parent-enfant, sans nécessiter de délégation explicite.
fonction start_tool
contextvars du SDK Session.
fonction start_turn
get_current_turn() renverra None. Utilisez plutôt session.start_turn() si vous avez besoin d’un accès intermodule basé sur la contextvar.
fonction thread
-
thread_id: l’identifiant du thread à associer aux appels dans ce contexte. S’il n’est pas fourni, un UUID v7 sera généré automatiquement. Si la valeur estNone, le suivi du thread sera désactivé. Renvoie : -
ThreadContext: un objet donnant accès àthread_idet à l’turn_idactuel.