output_file_paths to Create Trace, Update Trace or Create and Evaluate Trace instead: it is shorter and does the same upload.
The one thing this method gives you that output_file_paths does not is reuse. Upload a document once and attach the same AttachedFile to many turns, rather than uploading it per turn.
This is the answer-side twin of Upload Input File.
Returns
Returns anAttachedFile with uri, filename and mime_type. Place it in the output’s content list.
The uri still carries the upload’s signature and expires. The API replaces it with a signature-free storage reference when the turn is written, so trace.actual_output_files reads back a uri that does not expire and grants nobody the bytes on its own. Never treat either form as a link to the bytes: ask for a fresh one with galtea.storage.download() or galtea.storage.read().
AttachedFile is the object that used to be called InputFile, back when only an input could carry files. The same four fields now describe a file on either side. InputFile still works as a name for it, so code you already wrote keeps running, but it now warns with a GalteaDeprecationWarning. Switch to AttachedFile when you next touch that code.Example
Parameters
string
required
Path to the file on the machine running the SDK. One output accepts at most 20 files, 20 MB in total, and each must be one of these types:
pdf, docx, xlsx, pptx, rtf, png, jpg, jpeg, tiff, tif, bmp, webp, heic, heif, gif, txt, csv, md, html, xml, json, eml. A storage URI is refused: there is nothing on this machine to upload, so attach it directly instead.A metric scores a file only when its judge model reads that kind of file. Only a Galtea file, one you uploaded to Galtea, is sent to a judge. A file on your own host is stored as sent and never reaches a judge, so it never skips an evaluation: the judge reads the text beside it. The kinds a judge reads depend on its model, and the model picker of the metric form shows them for each model. A judge is sent PNG, JPEG, WebP, GIF and PDF files only. The other accepted types are stored, and a Galtea input file of those types still reaches your endpoint, but no judge reads them. The rule is the same for the input and the output, and a metric that reads
conversation_turns reads both sides of every turn.Before an evaluation runs, Galtea checks every Galtea file on each side the metric reads. One file the judge would not read skips the evaluation, whatever text sits beside it. A skipped evaluation costs no credits, and its reason names the file, its turn and what refused it:- The judge model cannot read that kind of file.
- The model catalog does not say whether the judge model reads it.
- The metric names no judge model.
- The metric is DeepEval-based: those judges are sent text only.
- The metric is deterministic: it compares text without a model.
- The metric is a classifier metric: it is sent text only.
- The file is a type no judge reads, such as DOCX, CSV or TIFF, or an audio file: a judge reads audio only through its transcript.
Evaluators read an audio input through its transcript, and no turn carries one., names no file.Human evaluation and self-hosted metrics are never skipped for a file or for audio. On deployments that do not send files to the judge, the evaluator also skips a metric whose judge would read the file, and the reason names the file.To have the content scored, pick a metric whose judge model reads that kind of file, or log the text your pipeline extracted as the turn input or output, without the file. See Troubleshooting skipped evaluations.Related Methods
- Create Trace - Log a turn and attach files in one call
- Update Trace - Attach files to a turn you already logged
- Upload Input File - The same method on the input side