From 387864266d6cb0fff2d3a7ef2100d8cb5c393745 Mon Sep 17 00:00:00 2001 From: Soumik Rakshit <19soumik.rakshit96@gmail.com> Date: Thu, 20 Feb 2025 19:49:22 +0530 Subject: [PATCH 01/27] fix(weave): huggingface tests (#3704) * fix: huggingface tests * update: tests * update: tests * update: tests * update: scorers extra --- pyproject.toml | 1 + .../test_huggingface_chat_completion.yaml | 45 +- ...est_huggingface_chat_completion_async.yaml | 43 +- ...st_huggingface_chat_completion_stream.yaml | 156 +- ...ggingface_document_question_answering.yaml | 47 +- ...ace_document_question_answering_async.yaml | 90 +- .../test_huggingface_fill_mask.yaml | 115 +- .../test_huggingface_fill_mask_async.yaml | 54 +- .../test_huggingface_question_answering.yaml | 68 +- ..._huggingface_question_answering_async.yaml | 54 +- ..._huggingface_table_question_answering.yaml | 35 +- ...ngface_table_question_answering_async.yaml | 78 +- .../test_huggingface_text_classification.yaml | 116 +- ...huggingface_text_classification_async.yaml | 54 +- .../test_huggingface_text_to_image.yaml | 3056 +++++++++-------- .../test_huggingface_text_to_image_async.yaml | 3054 ++++++++-------- ...test_huggingface_token_classification.yaml | 117 +- ...uggingface_token_classification_async.yaml | 54 +- .../test_huggingface_translation.yaml | 47 +- .../test_huggingface_translation_async.yaml | 33 +- .../test_huggingface_inference_client.py | 19 + 21 files changed, 3706 insertions(+), 3630 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 92853240f3c8..67984cb25f9e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -85,6 +85,7 @@ scorers = [ "torch>=2.4.1", "presidio-analyzer>=2.2.0", "presidio-anonymizer>=2.2.0", + "sentencepiece>=0.2.0", ] notdiamond = ["notdiamond>=0.3.21", "litellm<=1.49.1"] openai = ["openai>=1.0.0"] diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion.yaml index 5d8096e354b4..7dcccb7ebc1c 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion.yaml @@ -16,41 +16,54 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - c1755c47-504f-4caa-903f-9ea2932b2af2 + - 7e34d8c1-28c5-441b-9a95-860be8e52c4f user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/meta-llama/Llama-3.2-11B-Vision-Instruct/v1/chat/completions + uri: https://router.huggingface.co/hf-inference/models/meta-llama/Llama-3.2-11B-Vision-Instruct/v1/chat/completions response: body: - string: '{"object":"chat.completion","id":"","created":1738817179,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"message":{"role":"assistant","content":"The - image appears to be a classic depiction of the Statue of Liberty, a iconic - landmark and symbol of freedom, standing tall with the Manhattan skyline in - the background."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":44,"completion_tokens":33,"total_tokens":77}}' + string: '{"object":"chat.completion","id":"","created":1740032299,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"message":{"role":"assistant","content":"The + image showcases the iconic Statue of Liberty in New York City, prominently + featuring the statue''s copper-gold shimmer against the backdrop of the city''s + skyline."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":44,"completion_tokens":32,"total_tokens":76}}' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: - - '496' + - '491' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 04:50:22 GMT + - Thu, 20 Feb 2025 06:28:03 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 f881b3dd31ab6286675d899fd085a370.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - rU657ugF9ErwgIPCj207k1t7EPdb3jNqoc06G1mKcnUPHzIOBvLR2A== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers x-compute-time: - - '2.251821129' + - '2.15392648' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - /v1/chat/completions x-request-id: - - D4WMie + - Root=1-67b6cb73-4341b9c32aa563e633ad774b;7e34d8c1-28c5-441b-9a95-860be8e52c4f x-sha: - 9eb2daaa8597bf192a8b0e73f848f3a102794df5 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_async.yaml index 3adf1d7aa0a3..bb1276f77cc2 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_async.yaml @@ -3,39 +3,52 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/meta-llama/Llama-3.2-11B-Vision-Instruct/v1/chat/completions + uri: https://router.huggingface.co/hf-inference/models/meta-llama/Llama-3.2-11B-Vision-Instruct/v1/chat/completions response: body: - string: '{"object":"chat.completion","id":"","created":1738817179,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"message":{"role":"assistant","content":"The - image appears to be a classic depiction of the Statue of Liberty, a iconic - landmark and symbol of freedom, standing tall with the Manhattan skyline in - the background."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":44,"completion_tokens":33,"total_tokens":77}}' + string: '{"object":"chat.completion","id":"","created":1740032299,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"message":{"role":"assistant","content":"The + image showcases the iconic Statue of Liberty in New York City, prominently + featuring the statue''s copper-gold shimmer against the backdrop of the city''s + skyline."},"logprobs":null,"finish_reason":"stop"}],"usage":{"prompt_tokens":44,"completion_tokens":32,"total_tokens":76}}' headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: - - '496' + - '491' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 05:28:46 GMT + - Thu, 20 Feb 2025 06:28:09 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers + Via: + - 1.1 d5d581324f7c00665941b8e3d5683e78.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - q8I5H8DGN_uNX5etGIub8borvqxQy_bHLgnwgz6_Qotb6KYkL-kwnw== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '2.251821129' + - '2.15392648' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - /v1/chat/completions x-request-id: - - Xuo1eK + - Root=1-67b6cb79-07ee545a1f6025792e9ac335 x-sha: - 9eb2daaa8597bf192a8b0e73f848f3a102794df5 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_stream.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_stream.yaml index 65ea7dc1ebf7..f16229336224 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_stream.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_chat_completion_stream.yaml @@ -16,91 +16,131 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - b31ad586-a8cd-46d7-8a54-cf1ddaa9a282 + - 7fe8a661-1003-44f5-ac7c-e962d1244113 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/meta-llama/Llama-3.2-11B-Vision-Instruct/v1/chat/completions + uri: https://router.huggingface.co/hf-inference/models/meta-llama/Llama-3.2-11B-Vision-Instruct/v1/chat/completions response: body: - string: 'data: {"object":"chat.completion.chunk","id":"","created":1738819667,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"The"},"logprobs":null,"finish_reason":null}],"usage":null} + string: 'data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"The"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819668,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + image"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + showcases"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + the"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + iconic"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" Statue"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819669,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" of"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819669,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" Liberty"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819669,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - stands"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + in"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819669,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - tall"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + New"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819669,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - in"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + York"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819669,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - the"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + City"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - foreground"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032300,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":","},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":","},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + prominently"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - with"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + featuring"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" the"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - New"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + statue"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - York"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"''s"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - City"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + copper"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - skyline"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"-g"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - in"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"old"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819670,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + shimmer"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + against"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + the"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + backdrop"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + of"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" the"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819671,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" - background"},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + city"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"''s"},"logprobs":null,"finish_reason":null}],"usage":null} + + + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":" + skyline"},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819671,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"."},"logprobs":null,"finish_reason":null}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":"."},"logprobs":null,"finish_reason":null}],"usage":null} - data: {"object":"chat.completion.chunk","id":"","created":1738819671,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":"stop"}],"usage":null} + data: {"object":"chat.completion.chunk","id":"","created":1740032301,"model":"meta-llama/Llama-3.2-11B-Vision-Instruct","system_fingerprint":"2.4.1-sha-d2ed52f","choices":[{"index":0,"delta":{"role":"assistant","content":""},"logprobs":null,"finish_reason":"stop"}],"usage":null} data: [DONE] @@ -108,36 +148,40 @@ interactions: ' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '9109' Content-Type: - text/event-stream Date: - - Thu, 06 Feb 2025 05:27:47 GMT - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:06 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 d52d1c01e4ec71ae1ac4a7de9d75c37a.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - Oiu6D6qwtTmCc8ktpFxnFGBq1btOHDAMWH1DnGpwHak1oEp7fDXhqw== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' - access-control-allow-origin: - - '*' - cache-control: - - no-cache + cross-origin-opener-policy: + - same-origin vary: - - origin, access-control-request-method, access-control-request-headers, Origin, - Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-accel-buffering: - - 'no' - x-compute-characters: - - '365' + - Origin, Access-Control-Request-Method, Access-Control-Request-Headers x-compute-type: - - 4-a10-g - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - /v1/chat/completions + - cache x-request-id: - - g-aoFp + - Root=1-67b6cb76-51143f4c317cabde5c5db4d5;7fe8a661-1003-44f5-ac7c-e962d1244113 x-sha: - 9eb2daaa8597bf192a8b0e73f848f3a102794df5 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering.yaml index 82723fb52b82..02a96ee50449 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering.yaml @@ -11,7 +11,7 @@ interactions: User-Agent: - python-requests/2.32.3 X-Amzn-Trace-Id: - - 775e4d94-29dc-43a5-affe-368b80932a5f + - 0d421599-1ce5-45ec-8558-4387c2e111b9 method: GET uri: https://huggingface.co/spaces/impira/docquery/resolve/2359223c1837a7587402bda0f2643382a6eefeab/invoice.png response: @@ -465,7 +465,7 @@ interactions: Content-Type: - image/png Date: - - Thu, 06 Feb 2025 05:39:28 GMT + - Thu, 20 Feb 2025 06:28:12 GMT ETag: - '"78f9c64a3ffcfc436d52d523f3e3c5ad26c14b95"' Referrer-Policy: @@ -473,11 +473,11 @@ interactions: Vary: - Origin Via: - - 1.1 c56940b696de15630f45de7e4da7bb32.cloudfront.net (CloudFront) + - 1.1 11449dc59e84720c51d6a0c2548907ec.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - mYu92RxH8rM_XBEAFYOAzgcUUJ3NA5J5ZroYjm_8LtDsr5_37_JIpw== + - HnRW-TY7k5O-YsQLUzM3vrmNeu4KRG8xiVKsJk9RvXJ_onqxlBjhHA== X-Amz-Cf-Pop: - - DUS51-P4 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: @@ -485,7 +485,7 @@ interactions: X-Repo-Commit: - 2359223c1837a7587402bda0f2643382a6eefeab X-Request-Id: - - Root=1-67a44b10-1c799df94ad7a7fe5c85ff5e;775e4d94-29dc-43a5-affe-368b80932a5f + - Root=1-67b6cb7c-0119a0a853250f8b6bc780d0;0d421599-1ce5-45ec-8558-4387c2e111b9 cross-origin-opener-policy: - same-origin status: @@ -506,15 +506,19 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - a2d0b159-b754-43ee-879b-d74a4d505b4c + - a97e0ab7-d0db-4aa4-97f0-3cedba4f064e user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/impira/layoutlm-document-qa + uri: https://router.huggingface.co/hf-inference/models/impira/layoutlm-document-qa response: body: string: '[{"score":0.4251735210418701,"answer":"us-001","start":16,"end":16}]' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: @@ -522,22 +526,31 @@ interactions: Content-Type: - application/json Date: - - Thu, 06 Feb 2025 05:39:29 GMT + - Thu, 20 Feb 2025 06:28:12 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 f3774474598dd2c32211295e787adf8e.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - Nu1163cFH4G13aGf4BsWkyIhMmprRiCBWEk9l15wDmPJtQzRQHKMOQ== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers x-compute-time: - - '0.507' + - '0.478' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - J2QJ63 + - Root=1-67b6cb7c-41b34dbd7b1bbef97cd92ce0;a97e0ab7-d0db-4aa4-97f0-3cedba4f064e x-sha: - beed3c4d02d86017ebca5bd0fdf210046b907aa6 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering_async.yaml index 7b84e8a49935..53a2f15fbc33 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_document_question_answering_async.yaml @@ -11,7 +11,7 @@ interactions: User-Agent: - python-requests/2.32.3 X-Amzn-Trace-Id: - - ea8ae7a6-7985-4fd0-b388-a0d3439929ba + - 6ebea4d7-6ce2-4b18-8c1e-b3e348e0b4ce method: GET uri: https://huggingface.co/spaces/impira/docquery/resolve/2359223c1837a7587402bda0f2643382a6eefeab/invoice.png response: @@ -465,7 +465,7 @@ interactions: Content-Type: - image/png Date: - - Thu, 06 Feb 2025 05:39:01 GMT + - Thu, 20 Feb 2025 06:28:14 GMT ETag: - '"78f9c64a3ffcfc436d52d523f3e3c5ad26c14b95"' Referrer-Policy: @@ -473,11 +473,11 @@ interactions: Vary: - Origin Via: - - 1.1 a519b78387f012b2d3b1ed2288111abe.cloudfront.net (CloudFront) + - 1.1 95a64b916cc7062be796d476a3fd8d74.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - Tit0KwlSeURl3ViYWasEFenTDLt6YG9W1bqZJYwVONKr3uTOg98Dqw== + - BkHqJVyer91gm6h_VHauY2kXEJYy--V5n-gtfwvyA7efSsDdjG_D5w== X-Amz-Cf-Pop: - - DUS51-P4 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: @@ -485,7 +485,7 @@ interactions: X-Repo-Commit: - 2359223c1837a7587402bda0f2643382a6eefeab X-Request-Id: - - Root=1-67a44af5-2b1704a21505ba763b83551b;ea8ae7a6-7985-4fd0-b388-a0d3439929ba + - Root=1-67b6cb7e-2e55d0f15ff5649967bf998f;6ebea4d7-6ce2-4b18-8c1e-b3e348e0b4ce cross-origin-opener-policy: - same-origin status: @@ -495,77 +495,49 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/impira/layoutlm-document-qa - response: - body: - string: '{"error":"Model impira/layoutlm-document-qa is currently loading","estimated_time":20.4470272064209}' - headers: - Access-Control-Allow-Credentials: - - 'true' - Connection: - - keep-alive - Content-Length: - - '100' - Content-Type: - - application/json - Date: - - Thu, 06 Feb 2025 05:39:03 GMT - Vary: - - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / - x-request-id: - - GNdr_C - status: - code: 503 - message: Service Unavailable -- request: - body: null - headers: - X-wait-for-model: - - '1' - user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 - method: POST - uri: https://api-inference.huggingface.co/models/impira/layoutlm-document-qa + uri: https://router.huggingface.co/hf-inference/models/impira/layoutlm-document-qa response: body: string: '[{"score":0.4251735210418701,"answer":"us-001","start":16,"end":16}]' headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' Access-Control-Expose-Headers: - - x-compute-type, x-compute-time + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '68' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 05:39:12 GMT - Server: - - uvicorn - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:15 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-compute-characters: - - '26' + Via: + - 1.1 f881b3dd31ab6286675d899fd085a370.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - SViXEeDjUJyjXMDaYzd8wuOze8CrUUz1J-AG035x831UCyVpRbK9aQ== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '0.507' + - '0.478' x-compute-type: - - cpu - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / + - cache x-request-id: - - X2YWZk + - Root=1-67b6cb7f-7848656f7319498e7e083317 x-sha: - beed3c4d02d86017ebca5bd0fdf210046b907aa6 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask.yaml index b46a1053da06..c8c1a997a754 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - 509a2711-5657-4a01-a788-d4613f7293e2 + - 56ba9d61-7a71-4d0a-b1c4-2aaeb603cb33 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 05:51:35 GMT + - Thu, 20 Feb 2025 06:28:18 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 618574fc216bf970c81f33dca491e4b2.cloudfront.net (CloudFront) + - 1.1 3afb65bf884226399258e315426ffde6.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - 8VSDyCEjEue2bq7ejb1CES0T_R0QP2CDjfGHGbWqOmupGxjWOs73KA== + - iV4ZffyP8UxxgUO6UPWye7PsMH_V4oH5L24KhzLo863LKqWzPEYGFA== X-Amz-Cf-Pop: - - DUS51-P4 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a44de7-2230e0d503ab1721063c5799;509a2711-5657-4a01-a788-d4613f7293e2 + - Root=1-67b6cb82-761d3f8a3f190bba1e097cc6;56ba9d61-7a71-4d0a-b1c4-2aaeb603cb33 cross-origin-opener-policy: - same-origin status: @@ -766,58 +767,11 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - de2154a2-f555-4239-8aef-795babce497b + - 6a3cd29f-24bd-47a8-b62e-47b14095810b user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/distilroberta-base - response: - body: - string: '{"error":"Model distilbert/distilroberta-base is currently loading","estimated_time":20.0}' - headers: - Connection: - - keep-alive - Content-Length: - - '90' - Content-Type: - - application/json - Date: - - Thu, 06 Feb 2025 05:51:37 GMT - access-control-allow-credentials: - - 'true' - vary: - - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / - x-request-id: - - -pF_be - status: - code: 503 - message: Service Unavailable -- request: - body: '{"inputs": "The goal of life is .", "parameters": {}}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, zstd - Connection: - - keep-alive - Content-Length: - - '59' - Content-Type: - - application/json - X-Amzn-Trace-Id: - - 45fb6adf-a116-46a3-9dda-1ed385489985 - X-wait-for-model: - - '1' - user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 - method: POST - uri: https://api-inference.huggingface.co/models/distilroberta-base + uri: https://router.huggingface.co/hf-inference/models/distilroberta-base response: body: string: '[{"score":0.06832392513751984,"token":45075,"token_str":" immortality","sequence":"The @@ -827,35 +781,42 @@ interactions: simplicity","sequence":"The goal of life is simplicity."},{"score":0.024168511852622032,"token":22211,"token_str":" liberation","sequence":"The goal of life is liberation."}]' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '569' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 05:51:49 GMT - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:18 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 f3774474598dd2c32211295e787adf8e.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - pqBnGFNU4aVkssKsqT8y34iwmBQgCW3VKtVSL1azitWF4jvPtikMgQ== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' - access-control-expose-headers: - - x-compute-type, x-compute-time - server: - - uvicorn + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-compute-characters: - - '27' x-compute-time: - - '0.233' + - '0.042' x-compute-type: - - cpu - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / + - cache x-request-id: - - qnIN0u + - Root=1-67b6cb82-575c4ba0718db9344d726095;6a3cd29f-24bd-47a8-b62e-47b14095810b x-sha: - fb53ab8802853c8e4fbdbcd0529f21fc6f459b2b status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask_async.yaml index 6428d7767dba..f84f02279138 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_fill_mask_async.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - 01a0a414-5edf-4bab-bea8-275152388728 + - 91017a66-0743-4749-b74a-08d6e3195dfb user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 05:51:57 GMT + - Thu, 20 Feb 2025 06:28:21 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 327c500723be5bbd35817bb5bf5e2cee.cloudfront.net (CloudFront) + - 1.1 95db8944ee9a2bbb009c8acdcf3d9f80.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - hKgmohigr7urxvGDM_uX9ovtsCYM_-SCA3KkbA8GR26uCO0FrGVrYg== + - ffVQlKx_k3iAl6Bn_RhxhbuGUmtFlmZzI0tuGV1Sgj30IMn-DfB4iQ== X-Amz-Cf-Pop: - - BCN50-P1 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a44dfd-1b04f0ce47e9e6ae320a82be;01a0a414-5edf-4bab-bea8-275152388728 + - Root=1-67b6cb85-6ad1e84c0c8c57394fa3c6ad;91017a66-0743-4749-b74a-08d6e3195dfb cross-origin-opener-policy: - same-origin status: @@ -756,9 +757,9 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/distilroberta-base + uri: https://router.huggingface.co/hf-inference/models/distilroberta-base response: body: string: '[{"score":0.06832392513751984,"token":45075,"token_str":" immortality","sequence":"The @@ -770,6 +771,10 @@ interactions: headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: @@ -777,20 +782,29 @@ interactions: Content-Type: - application/json Date: - - Thu, 06 Feb 2025 05:51:59 GMT + - Thu, 20 Feb 2025 06:28:22 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers + Via: + - 1.1 18b24b9d82f8c92dd1fa9bebaf56af42.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - m6dMtkBRm5ECFFbLxWFHMDs0dnLTAQWIbI_-lajTUCzof4XITPKHng== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '0.233' + - '0.042' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - M-UMQD + - Root=1-67b6cb86-08a46b5f7ed7ab5749043acc x-sha: - fb53ab8802853c8e4fbdbcd0529f21fc6f459b2b status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering.yaml index a73a1f97c54e..9f9659d40390 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - d90b6b26-2863-4b37-97d0-8f588f6c01bd + - 6482619d-f454-442c-83b1-d91a4d59820b user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 05:52:31 GMT + - Thu, 20 Feb 2025 06:28:25 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 69f54fd525eb29c918e6e1c0a7125022.cloudfront.net (CloudFront) + - 1.1 339d21a7c522b99d932998426853138a.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - ZDqi7aCQJs-Dz7ZzlweMEXVo_n04-_X6XTMk30bRlXcqVpb5hKNaaA== + - EAAWNv3RAszEo7Y64OnxBLX6HINtpjmQ7EUqTqUb5ABtQJdA6OMuKg== X-Amz-Cf-Pop: - - BCN50-P1 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a44e1f-5a3bd71d0a1cd841523e5d32;d90b6b26-2863-4b37-97d0-8f588f6c01bd + - Root=1-67b6cb89-2b391df679fdeabe4e36d80e;6482619d-f454-442c-83b1-d91a4d59820b cross-origin-opener-policy: - same-origin status: @@ -767,44 +768,51 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - 175f1a93-6017-437d-81f4-c7116cb8e946 + - bf61b670-c196-48c2-bea5-669084ec7bd1 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/deepset/roberta-base-squad2 + uri: https://router.huggingface.co/hf-inference/models/deepset/roberta-base-squad2 response: body: string: '{"score":0.9326568841934204,"start":11,"end":16,"answer":"Clara"}' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '65' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 05:52:33 GMT - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:25 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 18b24b9d82f8c92dd1fa9bebaf56af42.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - sCn7zozfEC8DTE2WoqVRB2HuRU5Bh135pUhUdZzmRoaQUL4N8f5VRA== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' - access-control-expose-headers: - - x-compute-type, x-compute-time - server: - - uvicorn + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-compute-characters: - - '55' x-compute-time: - - '0.548' + - '0.062' x-compute-type: - - cpu - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / + - cache x-request-id: - - sHo5V3 + - Root=1-67b6cb89-0625017313d526b55f3f61fa;bf61b670-c196-48c2-bea5-669084ec7bd1 x-sha: - adc3b06f79f797d1c575d5479d6f5efe54a9e3b4 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering_async.yaml index d23fa945bda8..7a91007d82b1 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_question_answering_async.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - 0c1d5467-b91a-4e02-8120-3b5a660eb6c3 + - 2d1d9240-6f07-4b60-a1ce-e24a93f6324a user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 05:52:40 GMT + - Thu, 20 Feb 2025 06:28:28 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 630d35bf6016c7c9ee87eeeb6a015258.cloudfront.net (CloudFront) + - 1.1 d03f5e49ef8a75531152544d3c363680.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - g8g4e7e-Sx9YdtyqgoINHfYj2IX29lp3k6FQXNztny0hWDI5xCHkDw== + - v1bvTLQevk3NrkXOhF8unOYiELexY_bnX1hpTbndJ2OWjo-RsCehbA== X-Amz-Cf-Pop: - - BCN50-P1 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a44e28-040b20d77650f93138aa0271;0c1d5467-b91a-4e02-8120-3b5a660eb6c3 + - Root=1-67b6cb8c-49f42fd36b8649f26915ce1c;2d1d9240-6f07-4b60-a1ce-e24a93f6324a cross-origin-opener-policy: - same-origin status: @@ -756,15 +757,19 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/deepset/roberta-base-squad2 + uri: https://router.huggingface.co/hf-inference/models/deepset/roberta-base-squad2 response: body: string: '{"score":0.9326568841934204,"start":11,"end":16,"answer":"Clara"}' headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: @@ -772,20 +777,29 @@ interactions: Content-Type: - application/json Date: - - Thu, 06 Feb 2025 05:52:42 GMT + - Thu, 20 Feb 2025 06:28:28 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers + Via: + - 1.1 5795cfb7762205b7d50d5ba7ce4d8746.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - X6Q0VfGjDNfRbnOUD2m1r36wRXTe6L_NoExp4g16XzU4QQ2OIwJ3FQ== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '0.548' + - '0.062' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - k-xEGl + - Root=1-67b6cb8c-6db1232a1b875c6b78347a83 x-sha: - adc3b06f79f797d1c575d5479d6f5efe54a9e3b4 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering.yaml index 505b12fa5b24..fc0296fe3a53 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering.yaml @@ -15,15 +15,19 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - 4b9c888a-251d-44a2-a041-2e9adc45c640 + - 9b3fb779-163e-40c0-bf9e-0d1b73754b76 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/google/tapas-base-finetuned-wtq + uri: https://router.huggingface.co/hf-inference/models/google/tapas-base-finetuned-wtq response: body: string: '{"answer":"AVERAGE > 36542","coordinates":[[0,1]],"cells":["36542"],"aggregator":"AVERAGE"}' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: @@ -31,22 +35,31 @@ interactions: Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:04:18 GMT + - Thu, 20 Feb 2025 06:28:31 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 081f4dccbf59d5fd34750786ea392d28.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - -rhDEkPupBS1LBuIUQ5UP6TW7b4Qf1tehBr1TDjYWzH7DGDWptjTCA== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers x-compute-time: - - '1.421' + - '0.050' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - MnRduX + - Root=1-67b6cb8f-79c16c41675685ae3f27eab0;9b3fb779-163e-40c0-bf9e-0d1b73754b76 x-sha: - e3dde1905dea877b0df1a5c057533e48327dee77 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering_async.yaml index 452961ed83e0..85b784e4910c 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_table_question_answering_async.yaml @@ -3,77 +3,49 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/google/tapas-base-finetuned-wtq - response: - body: - string: '{"error":"Model google/tapas-base-finetuned-wtq is currently loading","estimated_time":20.0}' - headers: - Access-Control-Allow-Credentials: - - 'true' - Connection: - - keep-alive - Content-Length: - - '92' - Content-Type: - - application/json - Date: - - Thu, 06 Feb 2025 08:03:12 GMT - Vary: - - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / - x-request-id: - - xhQgKV - status: - code: 503 - message: Service Unavailable -- request: - body: null - headers: - X-wait-for-model: - - '1' - user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 - method: POST - uri: https://api-inference.huggingface.co/models/google/tapas-base-finetuned-wtq + uri: https://router.huggingface.co/hf-inference/models/google/tapas-base-finetuned-wtq response: body: string: '{"answer":"AVERAGE > 36542","coordinates":[[0,1]],"cells":["36542"],"aggregator":"AVERAGE"}' headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' Access-Control-Expose-Headers: - - x-compute-type, x-compute-time + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '91' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:03:29 GMT - Server: - - uvicorn - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:34 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-compute-characters: - - '126' + Via: + - 1.1 1b87a6ee309264786666693d35ccced0.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - fT6IZ6sYYE1vefh3ZMmSwLA-CGAoFoe0oZS8URjcGUnmiSSIqz0evA== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '1.421' + - '0.050' x-compute-type: - - cpu - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / + - cache x-request-id: - - VzYX7i + - Root=1-67b6cb92-1d500f2740451b7711aea319 x-sha: - e3dde1905dea877b0df1a5c057533e48327dee77 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification.yaml index 8656a070b8ed..2896d349ff94 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - 84c643a5-4ff4-4377-b538-90f40afa529e + - 9011c6d1-2bd2-49b2-8662-3a14927da0a3 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 08:05:04 GMT + - Thu, 20 Feb 2025 06:28:37 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 6dfd389c138f0c3d4626295090bb3362.cloudfront.net (CloudFront) + - 1.1 bca3adebcbf65b2db0bd69195955f79c.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - -Of26miVvi3F0WkErj_plRzelmWgdkKj0SaasjryJi2nLeYJP67Zug== + - hWVV1dZP_XekEQuFeb8BkEOaeLwvG-7TmEi5x-NhPOrIRQUuQpZpCg== X-Amz-Cf-Pop: - - DUS51-P4 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a46d30-1967f71e1ae13dc530b7c3fd;84c643a5-4ff4-4377-b538-90f40afa529e + - Root=1-67b6cb95-0d86c92e510d1c5256a63a89;9011c6d1-2bd2-49b2-8662-3a14927da0a3 cross-origin-opener-policy: - same-origin status: @@ -766,92 +767,51 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - 0bf06bd2-b8b4-45f9-973a-5bf326ccd891 + - e26e7640-3d31-459b-bd51-94e37f27b9f4 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/distilbert/distilbert-base-uncased-finetuned-sst-2-english - response: - body: - string: '{"error":"Model distilbert/distilbert-base-uncased-finetuned-sst-2-english - is currently loading","estimated_time":20.0}' - headers: - Connection: - - keep-alive - Content-Length: - - '119' - Content-Type: - - application/json - Date: - - Thu, 06 Feb 2025 08:05:06 GMT - access-control-allow-credentials: - - 'true' - vary: - - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / - x-request-id: - - 5_sVoz - status: - code: 503 - message: Service Unavailable -- request: - body: '{"inputs": "I like you", "parameters": {}}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, zstd - Connection: - - keep-alive - Content-Length: - - '42' - Content-Type: - - application/json - X-Amzn-Trace-Id: - - 6959ce08-15f4-4e2b-8a62-0db808404967 - X-wait-for-model: - - '1' - user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 - method: POST - uri: https://api-inference.huggingface.co/models/distilbert/distilbert-base-uncased-finetuned-sst-2-english + uri: https://router.huggingface.co/hf-inference/models/distilbert/distilbert-base-uncased-finetuned-sst-2-english response: body: string: '[[{"label":"POSITIVE","score":0.9998695850372314},{"label":"NEGATIVE","score":0.00013043530634604394}]]' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '103' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:05:18 GMT - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:37 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 da4cd6e8dfd86b71e48a104d012e3718.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - _zF4AYCENgxqOeqbhvd_Zhp0J3M1NtFujsMkGNMoH81JPoiylkTRZQ== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' - access-control-expose-headers: - - x-compute-type, x-compute-time - server: - - uvicorn + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-compute-characters: - - '10' x-compute-time: - - '0.090' + - '0.018' x-compute-type: - - cpu - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / + - cache x-request-id: - - ZbfOO7 + - Root=1-67b6cb95-2d3493e66fa8ded45d8faf12;e26e7640-3d31-459b-bd51-94e37f27b9f4 x-sha: - 714eb0fa89d2f80546fda750413ed43d93601a13 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification_async.yaml index 039b87dd2cc7..58402d879099 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_classification_async.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - af2b4ba0-5682-4480-9dee-fc99db8c5969 + - f9667f32-a41a-4d26-8b08-c5ef90885fe2 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 08:17:20 GMT + - Thu, 20 Feb 2025 06:28:40 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 ed123fb341b4af39cf924aafa949d976.cloudfront.net (CloudFront) + - 1.1 3afb65bf884226399258e315426ffde6.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - hC6YZY5ZFqkoLKBBKXeD-NZeawq3dZOYzhzTPN5NZPzdAMn8h2Vc5Q== + - XlduMUOvDr7J-WMApQSzn9HWSTK8NYEsc28Iwt1Zb_S9itzjA3-qRQ== X-Amz-Cf-Pop: - - LHR62-C4 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a47010-41304f8c08a033eb224eed26;af2b4ba0-5682-4480-9dee-fc99db8c5969 + - Root=1-67b6cb98-262139991771dac32d358ada;f9667f32-a41a-4d26-8b08-c5ef90885fe2 cross-origin-opener-policy: - same-origin status: @@ -756,15 +757,19 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/distilbert/distilbert-base-uncased-finetuned-sst-2-english + uri: https://router.huggingface.co/hf-inference/models/distilbert/distilbert-base-uncased-finetuned-sst-2-english response: body: string: '[[{"label":"POSITIVE","score":0.9998695850372314},{"label":"NEGATIVE","score":0.00013043530634604394}]]' headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: @@ -772,20 +777,29 @@ interactions: Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:17:21 GMT + - Thu, 20 Feb 2025 06:28:41 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers + Via: + - 1.1 fb01e6c024b96d582d90bf120bcc597c.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - iCRXyIQq_PQqb51SFI2NhZIFm1e9JevBH3t4lw-kqjN_2eVvoF28Rg== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '0.090' + - '0.018' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - D0h8e0 + - Root=1-67b6cb99-39a1312d3c111168302f19b7 x-sha: - 714eb0fa89d2f80546fda750413ed43d93601a13 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image.yaml index e79da83da399..5e46daa03a1d 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image.yaml @@ -13,11 +13,11 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - b597e93c-ed6a-475c-beff-d8b39c7ad565 + - 7957ec45-61fa-437b-b00e-a0aef346f57c user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-schnell + uri: https://router.huggingface.co/hf-inference/models/black-forest-labs/FLUX.1-schnell response: body: string: !!binary | @@ -31,1533 +31,1559 @@ interactions: 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 - eKu5Vz//2Q== + uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDtaKKK + 9c+QCjmiigBaKKKACiiigAooooAKWkooAWkoooAKKKWgAooooAKKKWgBKKWigAooooAKWiigAopa + KACiiloAKKKWgBBS0UuKACilxS4oASjFLilxQAgpaWjFABS0AUtACUuKXFLikAlLilxRigBBS0uK + XFACCloxS4oASlxS4pcUANxS0uKMUAJilxS4pcUANxRinYpcUANoxTsUYoASilpcUANoxTsUYoAS + ilxRigBMUUuKMUgEop2KMUAMoxTsUYoAbRinYpMUwEpKdRQA2kp2KMUANxSU7FGKAG0UuKMUANpK + dijFADaQinYpMUANpMU7FGKAGUU7FJigBtJTsUmKAG0lOoxQA2kp2KSgBtIadijFADaSnUmKAG0U + tGKAG0UuKTFAxKKWkpgJRRRQAlFLSUCCiiigApKWigAopKWgYlFFFABRRRSAKKKKYBSUUtABRSUt + AhKKKO9A7hRRRQAtJS0UCCikpaACiiikAUUUUAFFFFMApaSigBaKKKACiiigApaSloAKKKKQBS0U + UwCloooAKXFFLQAgpaKWgBKWlooAMUuKKWgAxS4oApaQCYpcUuKXFADQKXFLilxQIQClxSgUuKAE + xRinYpcUDG4pcUuKXFACYpcUuKXFAhuKXFLilxQAmKMU7FGKBiYpcUuKXFADcUuKXFLikA3FGKdi + jFACYoxTsUYoAbilxS4pcUANxRinUYoAbijFOxRigBuKMU7FGKBjcUYp2KKAG4oxTqKAG4pMU/FJ + igBuKMU6jFAhmKMU7FGKAGYoxTsUYoAZijFOxRigBmKQin4pMUANxSEU/FJigBmKMU7FIRQA3FJi + n4pMUAMxSYp9IRTAZikIp+KMUAMxSU7FGKAGYpKfikxQAykp+KQigBuKTFOxSEUANpDT6aaAEpKd + SEUANoIpaDQA2ilpKACkpaKYCUUtJSASilpKACiiigYUUUUAFFFFACUUtJTEFFFFABRRRQAUUUUA + LRSUtABRRRQAUUUUAFFFFIAooopgFLRRQAUUUUAFLRRQAUUUUAFLRS0AJS0UtAAKWgUUAFLRiloA + TFLilxRigApcUYpcUCAClxQKWkMQClxS4pcUCEApcUopcUDExS4pQKXFAhAKXFKBS4oAQClxRilx + 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 + 1wR9aymUZynT+VaYnOpRCG5BMy8JKev0NVI7KYS7SMYNQykmyBnMxG773971qza2k5mG0EVow6Yp + IJ6963bK1RMDHFQ5GigVrHRFZ1kMfB+8K7HTNMjhAwKhso1XAxxW9aKBhfyrJyNErFi2gEZGBxWt + DHwOKqxJ0q7CcYpFFpEqwgAqFGGKeXwKQEpIXkVG0oIqrLcbR1qk93hutSxouyt+VUpRmm/aQ3ej + eGqWURBeatQr0qIDmrMIqQLsCdK04E6VRgFacA6U0Qy3FFkCr8MfAqtAK04F4rWJjIVI6l2cVOkf + FPMXFdMUYMzpl+U1h3q9a6OaPg1hXycGtDtwk7M5a8OCayzLhq1NQGM1gTPhqxkz6vDSui8lx71Z + S596xVm96mSb3oVRo6nBM3En96mWbNYiXHvVlLj3raNYwlRNYSZpwYVnJPUyze9aqomYulYt00io + xJTgwqrpmfK0Iy1C8eas5phGaTRSdik8dVnjrSZKgdKylA3jMzXSoGWtCSOqzx1zyidUZlMimGrD + JULCsmjZMiNNNPIqM1BY0mmE041GTQIQmm7qQmmE00SyUPUyPVPdUiPVohmlG9WFas+N6tI/FUmI + s54qJ6cDxTGq0JleSq7Gp5KrOadzJiE1ExpSaidqlgdelmPSrMdoB2q1wKXdXr3PEjBIYsCipAqj + tSbqM1LNlEdmmlqM02pZqkBJppNOxSYpFobmmNUhFMYUi0QPUDmrDiq0lZSNokLGoy1OeoWNc8jZ + D99AeoS1JurNsssb6XzKrb6N/vS5gsWvMpRJVUPS76OYOUtiSniSqgenB/empCcS4JKXzsd6p+ZU + bS4p85PIXjcY7037XjvWVLc471Te8560e0YnFHSJejPWrUd0D3rkUvTnrV+C8zjmtoVWZSpo6Xzs + ik8zmsyO4yKnSXJ611Kd0c0lY1oGzWhFWVbt0rUgrnqM4MRLQtr0pScCkHSo5GxXM2eLU1Y7zcd6 + ek3vWe8mDQkpzQpGLibMcuatI2ayIZDWhExqiS31prLmlTmn7aTKRTkjzVKaHNazJUDxZrNotM56 + 4ts54rPez56V08kGe1VZLYelZOJomc29rjtVaRNvauhltvaqMtmW7UrF3OelZs0kcjZrVksPaq7W + mztTASOYgVN9oOOtVWBWomZqdwLMtznvVVpMnFRuxpIgWagCdYtwpzW3FWIhgCntjFAGHd2YZSMV + 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 headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: - - '86191' + - '86967' Content-Type: - image/jpeg Date: - - Thu, 06 Feb 2025 08:28:42 GMT + - Thu, 20 Feb 2025 06:28:55 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 5319c0b4be6b1e62f56f0f16cb84fae2.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - sScUtDk_SWAeee0kXu3zrbOaPH8F2y_paJFFeooP2Yod27hTBmhjnw== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers x-compute-time: - - '3.170' + - '3.042' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - I4Nf6g + - Root=1-67b6cba7-4dd6df781adbdbf10e779a16;7957ec45-61fa-437b-b00e-a0aef346f57c x-sha: - 741f7c3ce8b383c54771c7003378a50191e9efe9 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image_async.yaml index 084effd1d0e7..b192a35d5df1 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_text_to_image_async.yaml @@ -5,9 +5,9 @@ interactions: Accept: - image/png user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-schnell + uri: https://router.huggingface.co/hf-inference/models/black-forest-labs/FLUX.1-schnell response: body: string: !!binary | @@ -21,1533 +21,1559 @@ interactions: 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 - eKu5Vz//2Q== + uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwDtaKKK + 9c+QCjmiigBaKKKACiiigAooooAKWkooAWkoooAKKKWgAooooAKKKWgBKKWigAooooAKWiigAopa + KACiiloAKKKWgBBS0UuKACilxS4oASjFLilxQAgpaWjFABS0AUtACUuKXFLikAlLilxRigBBS0uK + XFACCloxS4oASlxS4pcUANxS0uKMUAJilxS4pcUANxRinYpcUANoxTsUYoASilpcUANoxTsUYoAS + ilxRigBMUUuKMUgEop2KMUAMoxTsUYoAbRinYpMUwEpKdRQA2kp2KMUANxSU7FGKAG0UuKMUANpK + dijFADaQinYpMUANpMU7FGKAGUU7FJigBtJTsUmKAG0lOoxQA2kp2KSgBtIadijFADaSnUmKAG0U + tGKAG0UuKTFAxKKWkpgJRRRQAlFLSUCCiiigApKWigAopKWgYlFFFABRRRSAKKKKYBSUUtABRSUt + AhKKKO9A7hRRRQAtJS0UCCikpaACiiikAUUUUAFFFFMApaSigBaKKKACiiigApaSloAKKKKQBS0U + UwCloooAKXFFLQAgpaKWgBKWlooAMUuKKWgAxS4oApaQCYpcUuKXFADQKXFLilxQIQClxSgUuKAE + xRinYpcUDG4pcUuKXFACYpcUuKXFAhuKXFLilxQAmKMU7FGKBiYpcUuKXFADcUuKXFLikA3FGKdi + jFACYoxTsUYoAbilxS4pcUANxRinUYoAbijFOxRigBuKMU7FGKBjcUYp2KKAG4oxTqKAG4pMU/FJ + igBuKMU6jFAhmKMU7FGKAGYoxTsUYoAZijFOxRigBmKQin4pMUANxSEU/FJigBmKMU7FIRQA3FJi + n4pMUAMxSYp9IRTAZikIp+KMUAMxSU7FGKAGYpKfikxQAykp+KQigBuKTFOxSEUANpDT6aaAEpKd + SEUANoIpaDQA2ilpKACkpaKYCUUtJSASilpKACiiigYUUUUAFFFFACUUtJTEFFFFABRRRQAUUUUA + LRSUtABRRRQAUUUUAFFFFIAooopgFLRRQAUUUUAFLRRQAUUUUAFLRS0AJS0UtAAKWgUUAFLRiloA + TFLilxRigApcUYpcUCAClxQKWkMQClxS4pcUCEApcUopcUDExS4pQKXFAhAKXFKBS4oAQClxRilx + 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 + 1wR9aymUZynT+VaYnOpRCG5BMy8JKev0NVI7KYS7SMYNQykmyBnMxG773971qza2k5mG0EVow6Yp + IJ6963bK1RMDHFQ5GigVrHRFZ1kMfB+8K7HTNMjhAwKhso1XAxxW9aKBhfyrJyNErFi2gEZGBxWt + DHwOKqxJ0q7CcYpFFpEqwgAqFGGKeXwKQEpIXkVG0oIqrLcbR1qk93hutSxouyt+VUpRmm/aQ3ej + eGqWURBeatQr0qIDmrMIqQLsCdK04E6VRgFacA6U0Qy3FFkCr8MfAqtAK04F4rWJjIVI6l2cVOkf + FPMXFdMUYMzpl+U1h3q9a6OaPg1hXycGtDtwk7M5a8OCayzLhq1NQGM1gTPhqxkz6vDSui8lx71Z + S596xVm96mSb3oVRo6nBM3En96mWbNYiXHvVlLj3raNYwlRNYSZpwYVnJPUyze9aqomYulYt00io + xJTgwqrpmfK0Iy1C8eas5phGaTRSdik8dVnjrSZKgdKylA3jMzXSoGWtCSOqzx1zyidUZlMimGrD + JULCsmjZMiNNNPIqM1BY0mmE041GTQIQmm7qQmmE00SyUPUyPVPdUiPVohmlG9WFas+N6tI/FUmI + s54qJ6cDxTGq0JleSq7Gp5KrOadzJiE1ExpSaidqlgdelmPSrMdoB2q1wKXdXr3PEjBIYsCipAqj + tSbqM1LNlEdmmlqM02pZqkBJppNOxSYpFobmmNUhFMYUi0QPUDmrDiq0lZSNokLGoy1OeoWNc8jZ + D99AeoS1JurNsssb6XzKrb6N/vS5gsWvMpRJVUPS76OYOUtiSniSqgenB/empCcS4JKXzsd6p+ZU + bS4p85PIXjcY7037XjvWVLc471Te8560e0YnFHSJejPWrUd0D3rkUvTnrV+C8zjmtoVWZSpo6Xzs + ik8zmsyO4yKnSXJ611Kd0c0lY1oGzWhFWVbt0rUgrnqM4MRLQtr0pScCkHSo5GxXM2eLU1Y7zcd6 + ek3vWe8mDQkpzQpGLibMcuatI2ayIZDWhExqiS31prLmlTmn7aTKRTkjzVKaHNazJUDxZrNotM56 + 4ts54rPez56V08kGe1VZLYelZOJomc29rjtVaRNvauhltvaqMtmW7UrF3OelZs0kcjZrVksPaq7W + mztTASOYgVN9oOOtVWBWomZqdwLMtznvVVpMnFRuxpIgWagCdYtwpzW3FWIhgCntjFAGHd2YZSMV + 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 headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: - - '86191' + - '86967' Content-Type: - image/jpeg Date: - - Thu, 06 Feb 2025 08:28:49 GMT + - Thu, 20 Feb 2025 06:28:58 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers + Via: + - 1.1 eee51fa774c120038fff1a69be429a80.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - VDpXpE6d4sk8S-92KKTi3vtP-uh_20MEbzH40ius8-YLBZosrdeUQw== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '3.170' + - '3.042' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - RPt5Wx + - Root=1-67b6cbaa-736c44267023873d5db804c3 x-sha: - 741f7c3ce8b383c54771c7003378a50191e9efe9 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification.yaml index 25ca52f6ea93..9619e87a0a5a 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - 0de1157c-213d-4309-83b7-3435dc2fec7c + - 12f579d8-8d2d-419f-950d-cfb719483218 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 08:18:12 GMT + - Thu, 20 Feb 2025 06:28:43 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 ab7ef1002486648bddb0e6bc684500bc.cloudfront.net (CloudFront) + - 1.1 d03f5e49ef8a75531152544d3c363680.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - sl1KbAMBxmhQmak0lxl40s8ia9bsw2JQkiqh8UTgL5HG_4esVXLW7g== + - NE8K4gb6L6lDqlmGlz5S2GocciYoSR4gwcYfXTeq5uk1p9doIrOhcg== X-Amz-Cf-Pop: - - LHR62-C4 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a47044-4c628210383f98734852755e;0de1157c-213d-4309-83b7-3435dc2fec7c + - Root=1-67b6cb9b-407f042618988b5d3d4f4ffb;12f579d8-8d2d-419f-950d-cfb719483218 cross-origin-opener-policy: - same-origin status: @@ -767,94 +768,52 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - 1fea8052-6c15-473a-b8eb-3ea73ca10189 + - 99f97310-5004-4c5c-b01e-b0b6659ec870 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/FacebookAI/xlm-roberta-large-finetuned-conll03-english - response: - body: - string: '{"error":"Model FacebookAI/xlm-roberta-large-finetuned-conll03-english - is currently loading","estimated_time":89.58377838134766}' - headers: - Connection: - - keep-alive - Content-Length: - - '128' - Content-Type: - - application/json - Date: - - Thu, 06 Feb 2025 08:18:14 GMT - access-control-allow-credentials: - - 'true' - vary: - - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / - x-request-id: - - Fx4pKH - status: - code: 503 - message: Service Unavailable -- request: - body: '{"inputs": "My name is Sarah Jessica Parker but you can call me Jessica", - "parameters": {}}' - headers: - Accept: - - '*/*' - Accept-Encoding: - - gzip, deflate, zstd - Connection: - - keep-alive - Content-Length: - - '91' - Content-Type: - - application/json - X-Amzn-Trace-Id: - - ecdb4252-5e46-4e2a-b56a-14c0f5526173 - X-wait-for-model: - - '1' - user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 - method: POST - uri: https://api-inference.huggingface.co/models/FacebookAI/xlm-roberta-large-finetuned-conll03-english + uri: https://router.huggingface.co/hf-inference/models/FacebookAI/xlm-roberta-large-finetuned-conll03-english response: body: string: '[{"entity_group":"PER","score":0.9999532103538513,"word":"Sarah Jessica Parker","start":11,"end":31},{"entity_group":"PER","score":0.9999523162841797,"word":"Jessica","start":52,"end":59}]' headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '188' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:18:28 GMT - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:44 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 42711b32043ef413dd139e4e07296056.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - skWEwptqMPtvidy3qubXqa9XO0Dvhd0I36S2Pdw_FBYqXzRfnV-cGQ== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' - access-control-expose-headers: - - x-compute-type, x-compute-time - server: - - uvicorn + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-compute-characters: - - '59' x-compute-time: - - '0.187' + - '0.116' x-compute-type: - - cpu - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / + - cache x-request-id: - - iggitS + - Root=1-67b6cb9c-38beba9f2152b8c87ab368b9;99f97310-5004-4c5c-b01e-b0b6659ec870 x-sha: - 18f95e9924f3f452df09cc90945073906ef18f1e status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification_async.yaml index b0cf53e6e122..9236c135cb01 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_token_classification_async.yaml @@ -9,9 +9,9 @@ interactions: Connection: - keep-alive X-Amzn-Trace-Id: - - 0ab72b2f-4931-417b-9906-4d8c273aa315 + - 90729030-1809-480b-a249-6c0dde551df1 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: GET uri: https://huggingface.co/api/tasks response: @@ -95,7 +95,8 @@ interactions: models take a (document, question) pair as input and return an answer in natural language. Models usually rely on multi-modal features, combining text, position of words (bounding-boxes) and image.\",\"widgetModels\":[\"impira/layoutlm-invoices\"],\"youtubeId\":\"\",\"id\":\"document-question-answering\",\"label\":\"Document - Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia + Question Answering\",\"libraries\":[\"transformers\",\"transformers.js\"]},\"visual-document-retrieval\":{\"datasets\":[],\"demo\":{\"inputs\":[],\"outputs\":[]},\"isPlaceholder\":true,\"metrics\":[],\"models\":[],\"spaces\":[],\"summary\":\"\",\"widgetModels\":[],\"id\":\"visual-document-retrieval\",\"label\":\"Visual + Document Retrieval\",\"libraries\":[\"transformers\"]},\"feature-extraction\":{\"datasets\":[{\"description\":\"Wikipedia dataset containing cleaned articles of all languages. Can be used to train `feature-extraction` models.\",\"id\":\"wikipedia\"}],\"demo\":{\"inputs\":[{\"label\":\"Input\",\"content\":\"India, officially the Republic of India, is a country in South Asia.\",\"type\":\"text\"}],\"outputs\":[{\"table\":[[\"Dimension @@ -724,29 +725,29 @@ interactions: Connection: - keep-alive Content-Length: - - '75866' + - '76131' Content-Type: - application/json; charset=utf-8 Date: - - Thu, 06 Feb 2025 08:18:43 GMT + - Thu, 20 Feb 2025 06:28:46 GMT ETag: - - W/"1285a-mpc2fdSsHWn76IZKBEOfnoriq8E" + - W/"12963-vyIYgItlbQqfuVxsEg2yioEcYRQ" Referrer-Policy: - strict-origin-when-cross-origin Vary: - Origin Via: - - 1.1 0fd12a25ab67f5f967cfdd1e5752efd4.cloudfront.net (CloudFront) + - 1.1 ed56247dd32d1f3f77d72a82c840f500.cloudfront.net (CloudFront) X-Amz-Cf-Id: - - lWqiXDP5pMmMmCoIu89TKs1fyRzqbYoEIj9oOv9PNXyLVLNnJ7xO8Q== + - _qQ0J5htqTGiok4BmgV4yzg35MMi23hWuKyejQGOvDHlsIzcbOr1Jw== X-Amz-Cf-Pop: - - LHR62-C4 + - CCU50-P1 X-Cache: - Miss from cloudfront X-Powered-By: - huggingface-moon X-Request-Id: - - Root=1-67a47063-744adf2b7e58e9f220658afe;0ab72b2f-4931-417b-9906-4d8c273aa315 + - Root=1-67b6cb9e-3dd58afd4c69f6004b535030;90729030-1809-480b-a249-6c0dde551df1 cross-origin-opener-policy: - same-origin status: @@ -756,9 +757,9 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/FacebookAI/xlm-roberta-large-finetuned-conll03-english + uri: https://router.huggingface.co/hf-inference/models/FacebookAI/xlm-roberta-large-finetuned-conll03-english response: body: string: '[{"entity_group":"PER","score":0.9999532103538513,"word":"Sarah Jessica @@ -766,6 +767,10 @@ interactions: headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: @@ -773,20 +778,29 @@ interactions: Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:18:44 GMT + - Thu, 20 Feb 2025 06:28:47 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers + Via: + - 1.1 713d8841aa458295c2d4e2f2b5f22ae8.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - 0FcHLti8bWzeX7yWbICzgpx8O0zPpYQE10MZo6uHqu9dsaT9IpKmPw== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '0.187' + - '0.116' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - ca2X6R + - Root=1-67b6cb9f-5d71df6f328ae2510d49a1f5 x-sha: - 18f95e9924f3f452df09cc90945073906ef18f1e status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation.yaml index 5b9b10ad0ac9..75fd1b02a5e1 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation.yaml @@ -13,44 +13,51 @@ interactions: Content-Type: - application/json X-Amzn-Trace-Id: - - 7e708333-68a0-44cd-b327-ef40252f173c + - 237f83f7-6472-4140-a466-a46e2c45aa47 user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-en-fr + uri: https://router.huggingface.co/hf-inference/models/Helsinki-NLP/opus-mt-en-fr response: body: string: "[{\"translation_text\":\"Je m'appelle Wolfgang et je vis \xE0 Berlin.\"}]" headers: + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive + Content-Length: + - '67' Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:19:42 GMT - Transfer-Encoding: - - chunked + - Thu, 20 Feb 2025 06:28:49 GMT + Referrer-Policy: + - strict-origin-when-cross-origin + Via: + - 1.1 5795cfb7762205b7d50d5ba7ce4d8746.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - o97rZb0lFXuTXaCDxHEVqHz2uJicnwpe73B90gh9al48E0wmqDJf_w== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon access-control-allow-credentials: - 'true' - access-control-expose-headers: - - x-compute-type, x-compute-time - server: - - uvicorn + cross-origin-opener-policy: + - same-origin vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers - x-compute-characters: - - '40' x-compute-time: - - '0.249' + - '0.332' x-compute-type: - - cpu - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / + - cache x-request-id: - - RAuH0d + - Root=1-67b6cba1-2ef0d0ef2c32b30555473038;237f83f7-6472-4140-a466-a46e2c45aa47 x-sha: - dd7f6540a7a48a7f4db59e5c0b9c42c8eea67f18 status: diff --git a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation_async.yaml b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation_async.yaml index 7ca83b782f15..e2cf1f7453f2 100644 --- a/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation_async.yaml +++ b/tests/integrations/huggingface/cassettes/test_huggingface_inference_client/test_huggingface_translation_async.yaml @@ -3,15 +3,19 @@ interactions: body: null headers: user-agent: - - unknown/None; hf_hub/0.28.1; python/3.12.8 + - unknown/None; hf_hub/0.29.0; python/3.12.8; torch/2.6.0 method: POST - uri: https://api-inference.huggingface.co/models/Helsinki-NLP/opus-mt-en-fr + uri: https://router.huggingface.co/hf-inference/models/Helsinki-NLP/opus-mt-en-fr response: body: string: "[{\"translation_text\":\"Je m'appelle Wolfgang et je vis \xE0 Berlin.\"}]" headers: Access-Control-Allow-Credentials: - 'true' + Access-Control-Allow-Origin: + - '*' + Access-Control-Expose-Headers: + - X-Repo-Commit,X-Request-Id,X-Error-Code,X-Error-Message,X-Total-Count,ETag,Link,Accept-Ranges,Content-Range,X-Xet-Access-Token,X-Xet-Token-Expiration,X-Xet-Refresh-Route,X-Xet-Cas-Url,X-Xet-Hash Connection: - keep-alive Content-Length: @@ -19,20 +23,29 @@ interactions: Content-Type: - application/json Date: - - Thu, 06 Feb 2025 08:19:50 GMT + - Thu, 20 Feb 2025 06:28:52 GMT + Referrer-Policy: + - strict-origin-when-cross-origin Vary: - Origin, Access-Control-Request-Method, Access-Control-Request-Headers - - origin, access-control-request-method, access-control-request-headers + Via: + - 1.1 7ab61ce3d7d648e0eaae5b45a81a89dc.cloudfront.net (CloudFront) + X-Amz-Cf-Id: + - xYWVRI7sQ_at9fCVOfDButv3TqZ11VOaSzfuyPeZmTpN4jjtvJjWzw== + X-Amz-Cf-Pop: + - CCU50-P4 + X-Cache: + - Miss from cloudfront + X-Powered-By: + - huggingface-moon + cross-origin-opener-policy: + - same-origin x-compute-time: - - '0.249' + - '0.332' x-compute-type: - cache - x-proxied-host: - - internal.api-inference.huggingface.co - x-proxied-path: - - / x-request-id: - - 7fGCFe + - Root=1-67b6cba4-5b5585116f99cfc54966fbec x-sha: - dd7f6540a7a48a7f4db59e5c0b9c42c8eea67f18 status: diff --git a/tests/integrations/huggingface/test_huggingface_inference_client.py b/tests/integrations/huggingface/test_huggingface_inference_client.py index 594ac8bede3b..a59057c41aeb 100644 --- a/tests/integrations/huggingface/test_huggingface_inference_client.py +++ b/tests/integrations/huggingface/test_huggingface_inference_client.py @@ -6,6 +6,7 @@ from weave.integrations.integration_utilities import op_name_from_ref +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -51,6 +52,7 @@ def test_huggingface_chat_completion(client): assert output.usage.prompt_tokens == 44 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -101,6 +103,7 @@ def test_huggingface_chat_completion_stream(client): assert output.model == "meta-llama/Llama-3.2-11B-Vision-Instruct" +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -151,6 +154,7 @@ def test_huggingface_chat_completion_async(client): assert output.usage.prompt_tokens == 44 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -181,6 +185,7 @@ def test_huggingface_document_question_answering(client): assert output[0].answer == "us-001" +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -213,6 +218,7 @@ def test_huggingface_document_question_answering_async(client): assert output[0].answer == "us-001" +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -236,6 +242,7 @@ def test_huggingface_fill_mask(client): assert output[0].score > 0 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -264,6 +271,7 @@ def test_huggingface_fill_mask_async(client): assert output[0].score > 0 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -291,6 +299,7 @@ def test_huggingface_question_answering(client): assert output.answer == "Clara" +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -321,6 +330,7 @@ def test_huggingface_question_answering_async(client): assert output.answer == "Clara" +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -351,6 +361,7 @@ def test_huggingface_table_question_answering(client): assert output.answer == "AVERAGE > 36542" +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -385,6 +396,7 @@ def test_huggingface_table_question_answering_async(client): assert output.answer == "AVERAGE > 36542" +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -411,6 +423,7 @@ def test_huggingface_text_classification(client): assert output[0].score > 0 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -439,6 +452,7 @@ def test_huggingface_text_classification_async(client): assert output[0].score > 0 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -467,6 +481,7 @@ def test_huggingface_token_classification(client): assert output[0].score > 0 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -497,6 +512,7 @@ def test_huggingface_token_classification_async(client): assert output[0].score > 0 +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -523,6 +539,7 @@ def test_huggingface_translation(client): assert "Wolfgang" in output.translation_text +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -553,6 +570,7 @@ def test_huggingface_translation_async(client): assert "Wolfgang" in output.translation_text +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], @@ -582,6 +600,7 @@ def test_huggingface_text_to_image(client): assert output is not None +@pytest.mark.flaky(reruns=5, reruns_delay=2) @pytest.mark.skip_clickhouse_client @pytest.mark.vcr( filter_headers=["authorization", "x-api-key"], From 1acf93ef4ad7532f7714f57af59a1b115fff697e Mon Sep 17 00:00:00 2001 From: Thomas Capelle Date: Thu, 20 Feb 2025 16:13:02 +0100 Subject: [PATCH 02/27] chore(weave): Make `PresidioScorer` support `custom_entities` (#3706) * Anish fixes * reorg * add tests * add pip * comment on pip --- pyproject.toml | 1 + tests/scorers/test_presidio_guardrail.py | 78 ++++++++++++++++++++--- weave/scorers/presidio_guardrail.py | 80 ++++++++++++------------ 3 files changed, 110 insertions(+), 49 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 67984cb25f9e..3927dbc4dfec 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -83,6 +83,7 @@ scorers = [ "scikit-learn>=1.5.2", "transformers>=4.48.2", "torch>=2.4.1", + "pip>=20.0", # this is needed for presidio-analyzer to pull the spacy models "presidio-analyzer>=2.2.0", "presidio-anonymizer>=2.2.0", "sentencepiece>=0.2.0", diff --git a/tests/scorers/test_presidio_guardrail.py b/tests/scorers/test_presidio_guardrail.py index 324828827904..076f89996177 100644 --- a/tests/scorers/test_presidio_guardrail.py +++ b/tests/scorers/test_presidio_guardrail.py @@ -1,4 +1,6 @@ import pytest +from presidio_analyzer import EntityRecognizer, RecognizerResult +from presidio_analyzer.nlp_engine import NlpArtifacts from weave.scorers import PresidioScorer @@ -8,13 +10,71 @@ def presidio_entity_recognition_guardrail(): return PresidioScorer() -@pytest.mark.skip( - reason="This test depends on the spacy model `en-core-web-lg` which takes a long time to download" -) -def test_presidio_entity_recognition_guardrail_score( - presidio_entity_recognition_guardrail, -): - input_text = "John Doe is a software engineer at XYZ company and his email is john.doe@xyz.com." +def test_presidio_email_detection(presidio_entity_recognition_guardrail): + """ + Given a text that contains an email address, the scorer should detect the email + and mark the result as not passing. + """ + input_text = "My is thomas@gmail.com" result = presidio_entity_recognition_guardrail.score(input_text) - assert not result.passed - assert "john.doe@xyz.com" in result.metadata["detected_entities"]["EMAIL_ADDRESS"] + + # Since an entity is detected, we expect the overall result to fail. + assert not result.passed, "Expected result to fail when an email is detected." + + # Check that the detected entities include the expected email. + detected_emails = result.metadata["detected_entities"].get("EMAIL_ADDRESS", []) + assert ( + "thomas@gmail.com" in detected_emails + ), "Expected to detect 'thomas@gmail.com' as an EMAIL_ADDRESS." + + +# A custom recognizer to detect numbers by checking each token's `like_num` attribute. +class NumbersRecognizer(EntityRecognizer): + expected_confidence_level = 0.7 # expected confidence level for this recognizer + + def load(self) -> None: + """No loading is required.""" + pass + + def analyze( + self, text: str, entities: list[str], nlp_artifacts: NlpArtifacts + ) -> list[RecognizerResult]: + "Analyze the text to locate tokens which represent numbers" + results = [] + for token in nlp_artifacts.tokens: + if token.like_num: + result = RecognizerResult( + entity_type="NUMBER", + start=token.idx, + end=token.idx + len(token.text), + score=self.expected_confidence_level, + ) + results.append(result) + return results + + +def test_presidio_scoring_with_custom_number_recognizer(): + """ + Given a text with numerical tokens, the custom numbers recognizer should + detect each number correctly and the overall result should fail. + """ + # Instantiate the custom numbers recognizer. + new_numbers_recognizer = NumbersRecognizer(supported_entities=["NUMBER"]) + + # Create a PresidioScorer with the custom recognizer. + scorer = PresidioScorer(custom_recognizers=[new_numbers_recognizer]) + input_text = "Roberto lives in Five 10 Broad st." + result = scorer.score(input_text) + + # Check that the custom recognizer detected numbers. + detected_numbers = result.metadata["detected_entities"].get("NUMBER", []) + assert detected_numbers, "Custom number recognizer did not detect any numbers." + + # We expect the custom recognizer to separately detect 'Five' and '10'. + assert set(detected_numbers) == { + "Five", + "10", + }, f"Expected detected numbers to be {{'Five', '10'}}, got {detected_numbers}" + + # Since at least one entity is detected, the result should not pass. + assert not result.passed, "Result should not pass when numbers are detected." diff --git a/weave/scorers/presidio_guardrail.py b/weave/scorers/presidio_guardrail.py index fbaddc99e36c..f600e04e1f0f 100644 --- a/weave/scorers/presidio_guardrail.py +++ b/weave/scorers/presidio_guardrail.py @@ -17,17 +17,6 @@ logger = logging.getLogger(__name__) -def get_available_entities() -> list[str]: - """Get available entities from Presidio""" - from presidio_analyzer import AnalyzerEngine, RecognizerRegistry - - registry = RecognizerRegistry() - analyzer = AnalyzerEngine(registry=registry) - return [ - recognizer.supported_entities[0] for recognizer in analyzer.registry.recognizers - ] - - class PresidioScorer(weave.Scorer): """ The `PresidioScorer` class is a guardrail for entity recognition and anonymization @@ -42,11 +31,6 @@ class PresidioScorer(weave.Scorer): Offline mode for presidio: https://github.com/microsoft/presidio/discussions/1435 """ - selected_entities: list[str] = Field( - default_factory=get_available_entities, - description="A list of entity types to detect in the text.", - examples=[["EMAIL_ADDRESS"]], - ) language: str = Field( default="en", description="The language of the text to be analyzed." ) @@ -54,13 +38,17 @@ class PresidioScorer(weave.Scorer): default_factory=list, description="A list of custom recognizers to add to the analyzer. Check Presidio's documentation for more information; https://microsoft.github.io/presidio/samples/python/customizing_presidio_analyzer/", ) + + selected_entities: Optional[list[str]] = Field( + default=None, + description="A list of entity types to detect in the text.", + examples=[["EMAIL_ADDRESS"]], + ) + + # Private attributes _analyzer: Optional["AnalyzerEngine"] = PrivateAttr(default=None) _anonymizer: Optional["AnonymizerEngine"] = PrivateAttr(default=None) - @property - def available_entities(self) -> list[str]: - return get_available_entities() - def model_post_init(self, __context: Any) -> None: from presidio_analyzer import AnalyzerEngine, RecognizerRegistry from presidio_anonymizer import AnonymizerEngine @@ -69,26 +57,34 @@ def model_post_init(self, __context: Any) -> None: self._analyzer = AnalyzerEngine(registry=registry) self._anonymizer = AnonymizerEngine() - # Get available entities dynamically - available_entities = self.available_entities - - # Filter out invalid entities and warn user - invalid_entities = list(set(self.selected_entities) - set(available_entities)) - valid_entities = list( - set(self.selected_entities).intersection(available_entities) - ) - - if invalid_entities: - logger.warning( - f"\nThe following entities are not available and will be ignored: {invalid_entities}\nContinuing with valid entities: {valid_entities}" - ) - self.selected_entities = valid_entities - # Add custom recognizers if provided if self.custom_recognizers: for recognizer in self.custom_recognizers: self._analyzer.registry.add_recognizer(recognizer) + # Get available entities dynamically + available_entities = [ + recognizer.supported_entities[0] + for recognizer in self._analyzer.registry.recognizers + ] + + if self.selected_entities is not None: + # Filter out invalid entities and warn user + invalid_entities = list( + set(self.selected_entities) - set(available_entities) + ) + valid_entities = list( + set(self.selected_entities).intersection(available_entities) + ) + + if invalid_entities: + logger.warning( + f"\nThe following entities are not available and will be ignored: {invalid_entities}\nContinuing with valid entities: {valid_entities}" + ) + self.selected_entities = valid_entities + else: + self.selected_entities = available_entities + @weave.op def group_analyzer_results_by_entity_type( self, output: str, analyzer_results: list["RecognizerResult"] @@ -118,9 +114,9 @@ def create_reason(self, detected_entities: dict[str, list[str]]) -> str: # Add information about what was checked explanation_parts.append("\nChecked for these entity types:") - for entity in self.selected_entities: - explanation_parts.append(f"- {entity}") - + if self.selected_entities is not None: + for entity in self.selected_entities: + explanation_parts.append(f"- {entity}") return "\n".join(explanation_parts) @weave.op @@ -139,11 +135,15 @@ def anonymize_text( return anonymized_text @weave.op - def score(self, output: str) -> WeaveScorerResult: + def score( + self, output: str, entities: Optional[list[str]] = None + ) -> WeaveScorerResult: if self._analyzer is None: raise ValueError("Analyzer is not initialized") + if entities is None: + entities = self.selected_entities analyzer_results = self._analyzer.analyze( - text=str(output), entities=self.selected_entities, language=self.language + text=str(output), entities=entities, language=self.language ) detected_entities = self.group_analyzer_results_by_entity_type( output, analyzer_results From 4239b60c8ad2f42e7862ab3b671b06b9ec41f1ea Mon Sep 17 00:00:00 2001 From: Thomas Capelle Date: Thu, 20 Feb 2025 16:50:06 +0100 Subject: [PATCH 03/27] feat(weave): Add WeaveTrustScorer (#3690) * add initial weave hf scorer * make nev variable for local model storage * udpate test * torch and friends * make model and tok private * lint * typo * _ * private methods * expose predict_chunk * type hf attrs * fix sutff * typing * _model * public methods again * fixes * public loading * fixing tests and mypy * go for pydantic validate_call * validate call * try block * typos * rename and update llm_scorers * classmethod * valid_call before weave.op * get directly * set env variable for scorers * mypy * rename to match * remove unused models * V1 * update docstring * coherence scorer V1 * lint * fix test * clean up * add fluency * add fluency * relevance scorer * fixes * lint * fix Fields * some fixes from Andrew * remove explicit device (from parent class) * remove print * make mypy happy * lint * fix test * add initial weave hf scorer * make nev variable for local model storage * udpate test * torch and friends * make model and tok private * lint * typo * _ * private methods * expose predict_chunk * type hf attrs * fix sutff * typing * _model * public methods again * fixes * public loading * fixing tests and mypy * go for pydantic validate_call * validate call * try block * typos * rename and update llm_scorers * classmethod * valid_call before weave.op * get directly * set env variable for scorers * mypy * rename to match * remove unused models * V1 * update docstring * first pass * factories * lint * update docstring * delete memory file * clean up device to _device * xtras -> metadata * extras - > meta * frozen attr * refactor device to be just a string * get ride of Type check * coherence scorer V1 * lint * clean up * add fluency * add fluency * relevance scorer * rename extras -> meta * fix test, to(device) * update docstring * udpate again * ensure_hf_imports once * remove file * missing 2 imports in all * still missing some * trust * defaults * fix testing * make mypy happy * decorate * fix trust * add parallelism test * make andrew happy * make fixture * add subscorers results * lint * add deps --------- Co-authored-by: Morgan McGuire --- pyproject.toml | 2 +- tests/scorers/test_trust_scorer.py | 175 ++++++++++++++ weave/scorers/__init__.py | 2 + weave/scorers/trust_scorer.py | 373 +++++++++++++++++++++++++++++ 4 files changed, 551 insertions(+), 1 deletion(-) create mode 100644 tests/scorers/test_trust_scorer.py create mode 100644 weave/scorers/trust_scorer.py diff --git a/pyproject.toml b/pyproject.toml index 3927dbc4dfec..cde9748d21bb 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -83,10 +83,10 @@ scorers = [ "scikit-learn>=1.5.2", "transformers>=4.48.2", "torch>=2.4.1", + "sentencepiece>=0.2.0", "pip>=20.0", # this is needed for presidio-analyzer to pull the spacy models "presidio-analyzer>=2.2.0", "presidio-anonymizer>=2.2.0", - "sentencepiece>=0.2.0", ] notdiamond = ["notdiamond>=0.3.21", "litellm<=1.49.1"] openai = ["openai>=1.0.0"] diff --git a/tests/scorers/test_trust_scorer.py b/tests/scorers/test_trust_scorer.py new file mode 100644 index 000000000000..3033c4166fe9 --- /dev/null +++ b/tests/scorers/test_trust_scorer.py @@ -0,0 +1,175 @@ +import asyncio + +import pytest + +import weave +from tests.scorers.test_utils import TINY_MODEL_PATHS +from weave.scorers.trust_scorer import WeaveTrustScorerV1 +from weave.scorers.utils import WeaveScorerResult + + +@pytest.fixture +def dummy_scorer(): + "Dummy scorer to test _filter_inputs_for_scorer functionality." + + class DummyScorer(weave.Scorer): + @weave.op + def score(self, output: str, query: str): + return WeaveScorerResult(passed=True, metadata={"dummy": True, "score": 1}) + + return DummyScorer() + + +@pytest.fixture +def trust_scorer(): + scorer = WeaveTrustScorerV1( + device="cpu", + context_relevance_model_name_or_path=TINY_MODEL_PATHS["relevance_scorer"], + hallucination_model_name_or_path=TINY_MODEL_PATHS["hallucination_scorer"], + toxicity_model_name_or_path=TINY_MODEL_PATHS["toxicity_scorer"], + fluency_model_name_or_path=TINY_MODEL_PATHS["fluency_scorer"], + coherence_model_name_or_path=TINY_MODEL_PATHS["coherence_scorer"], + run_in_parallel=False, + ) + return scorer + + +def test_simple_score(trust_scorer): + result = trust_scorer.score( + output="dummy output", context="dummy context", query="dummy query" + ) + assert not result.passed + + +def test_preprocess_text(trust_scorer): + input_text = "Hello , world !" + # After collapsing spaces -> "Hello , world !" and then punctuation cleanup yields "Hello, world!" + expected = "Hello, world!" + processed = trust_scorer._preprocess_text(input_text) + assert processed == expected + + +def test_filter_inputs_for_scorer(trust_scorer, dummy_scorer): + inputs = { + "output": "test_output", + "query": "test_query", + "extra": "should_be_filtered", + } + filtered = trust_scorer._filter_inputs_for_scorer(dummy_scorer, inputs) + assert "output" in filtered + assert "query" in filtered + assert "extra" not in filtered + + +def test_score_all_with_dummy_scorers(trust_scorer): + # Replace the loaded scorers with dummy ones to simulate controlled outcomes. + class AlwaysPassScore(weave.Scorer): + @weave.op + def score(self, **kwargs): + return WeaveScorerResult(passed=True, metadata={"score": 0.1}) + + class AlwaysFailScore(weave.Scorer): + @weave.op + def score(self, **kwargs): + return WeaveScorerResult(passed=False, metadata={"score": 0.9}) + + trust_scorer._loaded_scorers = { + "AlwaysPass": AlwaysPassScore(), + "AlwaysFail": AlwaysFailScore(), + } + + results = trust_scorer._score_all( + output="dummy output", context="dummy context", query="dummy query" + ) + assert "AlwaysPass" in results + assert "AlwaysFail" in results + assert results["AlwaysPass"].passed + assert not results["AlwaysFail"].passed + + +def test_score_with_logic(trust_scorer): + # Create dummy critical and advisory scorers to verify nuanced trust logic. + class DummyCriticalScore(weave.Scorer): + @weave.op + def score(self, **kwargs): + return WeaveScorerResult( + passed=False, metadata={"score": 0.8, "score_2": 0.8} + ) + + class DummyAdvisoryScore(weave.Scorer): + @weave.op + def score(self, **kwargs): + return WeaveScorerResult( + passed=False, metadata={"score": 0.4, "score_2": 0.4} + ) + + # Override the loaded scorers and classification sets. + trust_scorer._loaded_scorers = { + "DummyCritical": DummyCriticalScore(), + "DummyAdvisory": DummyAdvisoryScore(), + } + trust_scorer._critical_scorers = {DummyCriticalScore} + trust_scorer._advisory_scorers = {DummyAdvisoryScore} + + result = trust_scorer._score_with_logic( + query="dummy query", context="dummy context", output="dummy output" + ) + # Since a critical scorer failed, overall trust should be low. + assert result.metadata["trust_level"] == "low_critical-issues-found" + assert not result.passed + assert "DummyCritical" in result.metadata["critical_issues"] + # Presence of advisory issues should still be reported. + assert "DummyAdvisory" in result.metadata["advisory_issues"] + + +# we need to test parallelism and how it plays with weave.Evaluations +def test_trust_scorer_parallelism(trust_scorer): + trust_scorer.run_in_parallel = True + + ds = [ + { + "output": "test_output", + "query": "test_query", + "context": "context", + } + ] * 100 + + @weave.op + def model(output): + return output + + evaluation = weave.Evaluation(dataset=ds, scorers=[trust_scorer]) + eval_result = asyncio.run(evaluation.evaluate(model)) + assert "passed" in eval_result["WeaveTrustScorerV1"] + assert "metadata" in eval_result["WeaveTrustScorerV1"] + assert len(eval_result["WeaveTrustScorerV1"]["metadata"]["raw_outputs"]) == 5 + + # Check that none of the subscorers passed + raw_outputs = eval_result["WeaveTrustScorerV1"]["metadata"]["raw_outputs"] + + # it's kind of boring... + for _, scorer_results in raw_outputs.items(): + assert scorer_results["passed"]["true_count"] == 0 + assert scorer_results["passed"]["true_fraction"] == 0.0 + + # Verify specific mean scores + assert raw_outputs["WeaveHallucinationScorerV1"]["metadata"]["score"][ + "mean" + ] == pytest.approx(0.99999, rel=1e-4) + assert raw_outputs["WeaveCoherenceScorerV1"]["metadata"]["score"][ + "mean" + ] == pytest.approx(0.20488, rel=1e-4) + assert raw_outputs["WeaveFluencyScorerV1"]["metadata"]["score"][ + "mean" + ] == pytest.approx(0.40745, rel=1e-4) + assert raw_outputs["WeaveContextRelevanceScorerV1"]["metadata"]["score"][ + "mean" + ] == pytest.approx(0.11111, rel=1e-4) + + # Verify toxicity categories + toxicity_results = raw_outputs["WeaveToxicityScorerV1"]["metadata"] + assert toxicity_results["Ability"]["mean"] == 0.0 + assert toxicity_results["Gender/Sex"]["mean"] == 0.0 + assert toxicity_results["Violence"]["mean"] == 2.0 + assert toxicity_results["Race/Origin"]["mean"] == 3.0 + assert toxicity_results["Religion"]["mean"] == 2.0 diff --git a/weave/scorers/__init__.py b/weave/scorers/__init__.py index 342a2460c572..348c12f2711c 100644 --- a/weave/scorers/__init__.py +++ b/weave/scorers/__init__.py @@ -39,6 +39,7 @@ StringMatchScorer, ) from weave.scorers.summarization_scorer import SummarizationScorer +from weave.scorers.trust_scorer import WeaveTrustScorerV1 from weave.scorers.xml_scorer import ValidXMLScorer __all__ = [ @@ -67,4 +68,5 @@ "WeaveFluencyScorerV1", "WeaveHallucinationScorerV1", "WeaveContextRelevanceScorerV1", + "WeaveTrustScorerV1", ] diff --git a/weave/scorers/trust_scorer.py b/weave/scorers/trust_scorer.py new file mode 100644 index 000000000000..f5452dbd8c4a --- /dev/null +++ b/weave/scorers/trust_scorer.py @@ -0,0 +1,373 @@ +""" +W&B Trust Score implementation. + +This scorer combines multiple scorers to provide a comprehensive trust evaluation. +""" + +import re +from concurrent.futures import ThreadPoolExecutor, as_completed +from inspect import signature +from typing import Any, Optional, Union + +from pydantic import Field, PrivateAttr, validate_call + +import weave +from weave.scorers import ( + WeaveCoherenceScorerV1, + WeaveContextRelevanceScorerV1, + WeaveFluencyScorerV1, + WeaveHallucinationScorerV1, + WeaveToxicityScorerV1, +) +from weave.scorers.context_relevance_scorer import CONTEXT_RELEVANCE_SCORER_THRESHOLD +from weave.scorers.fluency_scorer import FLUENCY_SCORER_THRESHOLD +from weave.scorers.hallucination_scorer import HALLUCINATION_SCORER_THRESHOLD +from weave.scorers.moderation_scorer import ( + TOXICITY_CATEGORY_THRESHOLD, + TOXICITY_TOTAL_THRESHOLD, +) +from weave.scorers.utils import WeaveScorerResult + + +class WeaveTrustScorerError(Exception): + """Error raised by the WeaveTrustScorerV1.""" + + def __init__(self, message: str, errors: Optional[Exception] = None): + super().__init__(message) + self.errors = errors + + +class WeaveTrustScorerV1(weave.Scorer): + """A comprehensive trust evaluation scorer that combines multiple specialized scorers. + + For best performance run this Scorer on a GPU. The model weights for 5 small language models + will be downloaded automatically from W&B Artifacts when this Scorer is initialized. + + The TrustScorer evaluates the trustworthiness of model outputs by combining multiple + specialized scorers into two categories. + + Note: This scorer is suited for RAG pipelines. It requires query, context and output keys to score correctly. + + 1. Critical Scorers (automatic failure if pass is False): + - WeaveToxicityScorerV1: Detects harmful, offensive, or inappropriate content + - WeaveHallucinationScorerV1: Identifies fabricated or unsupported information + - WeaveContextRelevanceScorerV1: Ensures output relevance to provided context + + 2. Advisory Scorers (warnings that may affect trust): + - WeaveFluencyScorerV1: Evaluates language quality and coherence + - WeaveCoherenceScorerV1: Checks for logical consistency and flow + + Trust Levels: + - "high": No issues detected + - "medium": Only advisory issues detected + - "low": Critical issues detected or empty input + + Args: + device (str): Device for model inference ("cpu", "cuda", "mps", "auto"). Defaults to "cpu". + context_relevance_model_name_or_path (str, optional): Local path or W&B Artifact path for the context relevance model. + hallucination_model_name_or_path (str, optional): Local path or W&B Artifact path for the hallucination model. + toxicity_model_name_or_path (str, optional): Local path or W&B Artifact path for the toxicity model. + fluency_model_name_or_path (str, optional): Local path or W&B Artifact path for the fluency model. + coherence_model_name_or_path (str, optional): Local path or W&B Artifact path for the coherence model. + run_in_parallel (bool): Whether to run scorers in parallel or sequentially, useful for debugging. Defaults to True. + + Note: The `output` parameter of this Scorer's `score` method expects the output of a LLM or AI system. + + Example: + ```python + scorer = TrustScorer(run_in_parallel=True) + + # Basic scoring + result = scorer.score( + output="The sky is blue.", + context="Facts about the sky.", + query="What color is the sky?" + ) + + # Example output: + WeaveScorerResult( + passed=True, + metadata={ + "trust_level": "high_no-issues-found", + "critical_issues": [], + "advisory_issues": [], + "raw_outputs": { + "WeaveToxicityScorerV1": {"passed": True, "metadata": {"Race/Origin": 0, "Gender/Sex": 0, "Religion": 0, "Ability": 0, "Violence": 0}}, + "WeaveHallucinationScorerV1": {"passed": True, "metadata": {"score": 0.1}}, + "WeaveContextRelevanceScorerV1": {"passed": True, "metadata": {"score": 0.85}}, + "WeaveFluencyScorerV1": {"passed": True, "metadata": {"score": 0.95}}, + "WeaveCoherenceScorerV1": {"passed": True, "metadata": {"coherence_label": "Perfectly Coherent", "coherence_id": 4, "score": 0.9}} + }, + "scores": { + "WeaveToxicityScorerV1": {"Race/Origin": 0, "Gender/Sex": 0, "Religion": 0, "Ability": 0, "Violence": 0}, + "WeaveHallucinationScorerV1": 0.1, + "WeaveContextRelevanceScorerV1": 0.85, + "WeaveFluencyScorerV1": 0.95, + "WeaveCoherenceScorerV1": 0.9 + } + } + ) + ``` + + """ + + # Model configuration + device: str = Field( + default="cpu", + description="Device for model inference ('cpu', 'cuda', 'mps', 'auto')", + from_default=True, + ) + context_relevance_model_name_or_path: str = Field( + default="", + description="Path or name of the context relevance model", + validate_default=True, + ) + hallucination_model_name_or_path: str = Field( + default="", + description="Path or name of the hallucination model", + validate_default=True, + ) + toxicity_model_name_or_path: str = Field( + default="", + description="Path or name of the toxicity model", + validate_default=True, + ) + fluency_model_name_or_path: str = Field( + default="", + description="Path or name of the fluency model", + validate_default=True, + ) + coherence_model_name_or_path: str = Field( + default="", + description="Path or name of the coherence model", + validate_default=True, + ) + run_in_parallel: bool = Field( + default=True, + description="Whether to run scorers in parallel or sequentially, useful for debugging.", + ) + + # Define scorer categories + _critical_scorers: set[weave.Scorer] = PrivateAttr( + default_factory=lambda: { + WeaveToxicityScorerV1, + WeaveHallucinationScorerV1, + WeaveContextRelevanceScorerV1, + } + ) + _advisory_scorers: set[weave.Scorer] = PrivateAttr( + default_factory=lambda: { + WeaveFluencyScorerV1, + WeaveCoherenceScorerV1, + } + ) + + # Private attributes + _loaded_scorers: dict[str, weave.Scorer] = PrivateAttr(default_factory=dict) + _emoji_pattern: re.Pattern = PrivateAttr( + default=re.compile( + "[" + "\U0001f600-\U0001f64f" # emoticons + "\U0001f300-\U0001f5ff" # symbols & pictographs + "\U0001f680-\U0001f6ff" # transport & map symbols + "\U0001f1e0-\U0001f1ff" # flags (iOS) + "\U00002702-\U000027b0" # dingbats + "\U000024c2-\U0001f251" + "]+", + flags=re.UNICODE, + ) + ) + + def model_post_init(self, __context: Any) -> None: + """Initialize scorers after model validation.""" + super().model_post_init(__context) + self._load_scorers() + + def _load_scorers(self) -> None: + """Load all scorers with appropriate configurations.""" + # Load all scorers (both critical and advisory) + all_scorers = self._critical_scorers | self._advisory_scorers + + for scorer_cls in all_scorers: + scorer_params: dict[str, Any] = { + "column_map": self.column_map, + "device": self.device, + } + + # Add specific threshold parameters based on scorer type + if scorer_cls == WeaveContextRelevanceScorerV1: + scorer_params["threshold"] = CONTEXT_RELEVANCE_SCORER_THRESHOLD + scorer_params["model_name_or_path"] = ( + self.context_relevance_model_name_or_path + ) + elif scorer_cls == WeaveHallucinationScorerV1: + scorer_params["threshold"] = HALLUCINATION_SCORER_THRESHOLD + scorer_params["model_name_or_path"] = ( + self.hallucination_model_name_or_path + ) + elif scorer_cls == WeaveToxicityScorerV1: + scorer_params["total_threshold"] = TOXICITY_TOTAL_THRESHOLD + scorer_params["category_threshold"] = TOXICITY_CATEGORY_THRESHOLD + scorer_params["model_name_or_path"] = self.toxicity_model_name_or_path + elif scorer_cls == WeaveFluencyScorerV1: + scorer_params["threshold"] = FLUENCY_SCORER_THRESHOLD + scorer_params["model_name_or_path"] = self.fluency_model_name_or_path + elif scorer_cls == WeaveCoherenceScorerV1: + scorer_params["model_name_or_path"] = self.coherence_model_name_or_path + + # Initialize and store scorer + self._loaded_scorers[scorer_cls.__name__] = scorer_cls(**scorer_params) + + def _preprocess_text(self, text: str) -> str: + """Preprocess text by handling emojis and length.""" + if not text: + return text + + # Replace emojis with their text representation while preserving spacing + text = self._emoji_pattern.sub(lambda m: f" {m.group(0)} ", text) + + # Clean up multiple spaces and normalize whitespace + text = " ".join(text.split()) + + # Ensure proper sentence spacing + text = ( + text.replace(" .", ".") + .replace(" ,", ",") + .replace(" !", "!") + .replace(" ?", "?") + ) + + return text + + def _filter_inputs_for_scorer( + self, scorer: weave.Scorer, inputs: dict[str, Any] + ) -> dict[str, Any]: + """Filter inputs to match scorer's signature.""" + scorer_params = signature(scorer.score).parameters + return {k: v for k, v in inputs.items() if k in scorer_params} + + def _score_all( + self, + output: str, + context: Union[str, list[str]], + query: str, + ) -> dict[str, Any]: + """Run all applicable scorers and return their raw results.""" + # Preprocess inputs + processed_output = self._preprocess_text(output) + processed_context = ( + self._preprocess_text(context) if isinstance(context, str) else context + ) + processed_query = self._preprocess_text(query) if query else None + + inputs: dict[str, Any] = {"output": processed_output} + if processed_context is not None: + inputs["context"] = processed_context + if processed_query is not None: + inputs["query"] = processed_query + + results = {} + + if self.run_in_parallel: + with ThreadPoolExecutor() as executor: + # Schedule each scorer's work concurrently. + future_to_scorer = { + executor.submit( + scorer.score, **self._filter_inputs_for_scorer(scorer, inputs) + ): scorer_name + for scorer_name, scorer in self._loaded_scorers.items() + } + # Collect results as they complete. + for future in as_completed(future_to_scorer): + scorer_name = future_to_scorer[future] + try: + results[scorer_name] = future.result() + except Exception as e: + raise WeaveTrustScorerError( + f"Error calling {scorer_name}: {e}", errors=e + ) + else: + # Run scorers sequentially + for scorer_name, scorer in self._loaded_scorers.items(): + try: + results[scorer_name] = scorer.score( + **self._filter_inputs_for_scorer(scorer, inputs) + ) + except Exception as e: + raise WeaveTrustScorerError( + f"Error calling {scorer_name}: {e}", errors=e + ) + + return results + + def _score_with_logic( + self, + query: str, + context: Union[str, list[str]], + output: str, + ) -> WeaveScorerResult: + """Score with nuanced logic for trustworthiness.""" + raw_results = self._score_all(output=output, context=context, query=query) + + # Handle error case + if "error" in raw_results: + return raw_results["error"] + + # Track issues by type + critical_issues = [] + advisory_issues = [] + + # Check each scorer's results + for scorer_name, result in raw_results.items(): + if not result.passed: + scorer_cls = type(self._loaded_scorers[scorer_name]) + if scorer_cls in self._critical_scorers: + critical_issues.append(scorer_name) + elif scorer_cls in self._advisory_scorers: + advisory_issues.append(scorer_name) + + # Determine trust level + passed = True + trust_level = "high_no-issues-found" + if critical_issues: + passed = False + trust_level = "low_critical-issues-found" + elif advisory_issues: + trust_level = "medium_advisory-issues-found" + + # Extract scores where available + scores = {} + for name, result in raw_results.items(): + if name == "WeaveToxicityScorerV1": + scores[name] = result.metadata # Toxicity returns category scores + elif hasattr(result, "metadata") and "score" in result.metadata: + scores[name] = result.metadata["score"] + + return WeaveScorerResult( + passed=passed, + metadata={ + "trust_level": trust_level, + "critical_issues": critical_issues, + "advisory_issues": advisory_issues, + "raw_outputs": raw_results, + "scores": scores, + }, + ) + + @validate_call + @weave.op + def score( + self, + query: str, + context: Union[str, list[str]], + output: str, # Pass the output of a LLM to this parameter for example + ) -> WeaveScorerResult: + """ + Score the query, context and output against 5 different scorers. + + Args: + query: str, The query to score the context against + context: Union[str, list[str]], The context to score the query against + output: str, The output to score, e.g. the output of a LLM + """ + return self._score_with_logic(query=query, context=context, output=output) From cd529abc591b5fe5411968601ee3674922847da2 Mon Sep 17 00:00:00 2001 From: Thomas Capelle Date: Thu, 20 Feb 2025 17:18:39 +0100 Subject: [PATCH 04/27] remove valida_call (#3716) --- weave/scorers/moderation_scorer.py | 1 - 1 file changed, 1 deletion(-) diff --git a/weave/scorers/moderation_scorer.py b/weave/scorers/moderation_scorer.py index 502086f833b4..240e15736650 100644 --- a/weave/scorers/moderation_scorer.py +++ b/weave/scorers/moderation_scorer.py @@ -35,7 +35,6 @@ class OpenAIModerationScorer(weave.Scorer): ) @weave.op - @validate_call async def score(self, output: str) -> dict: """ Score the given text against the OpenAI moderation API. From e148c919802f08d79509e2892b34b344225ec056 Mon Sep 17 00:00:00 2001 From: niall-wb Date: Thu, 20 Feb 2025 09:38:02 -0700 Subject: [PATCH 05/27] feat(weave): PII Redaction for weave using Microsoft Presidio (#3406) --- pyproject.toml | 2 + weave/trace/op_type.py | 5 +++ weave/trace/pii_redaction.py | 77 ++++++++++++++++++++++++++++++++++++ weave/trace/settings.py | 32 +++++++++++++++ weave/trace/trace_sentry.py | 23 ++++++++++- weave/trace/weave_client.py | 28 ++++++++++--- weave/trace/weave_init.py | 9 ++++- 7 files changed, 169 insertions(+), 7 deletions(-) create mode 100644 weave/trace/pii_redaction.py diff --git a/pyproject.toml b/pyproject.toml index cde9748d21bb..56391f3bf2e4 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,6 +13,7 @@ authors = [ { name = "Griffin Tarpenning", email = "griffin.tarpenning@wandb.com" }, { name = "Josiah Lee", email = "josiah.lee@wandb.com" }, { name = "Andrew Truong", email = "andrew@wandb.com" }, + { name = "Niall McQuay", email = "niall.mcquay@wandb.com" }, ] classifiers = [ "Development Status :: 4 - Beta", @@ -91,6 +92,7 @@ scorers = [ notdiamond = ["notdiamond>=0.3.21", "litellm<=1.49.1"] openai = ["openai>=1.0.0"] pandas-test = ["pandas>=2.2.3"] +presidio = ["presidio-analyzer==2.2.357", "presidio-anonymizer==2.2.357"] modal = ["modal", "python-dotenv"] vertexai = ["vertexai>=1.70.0", "shapely<=2.0.6"] # shapely is busted on 2.0.7 bedrock = ["boto3", "moto[bedrock]>=5.0.24"] diff --git a/weave/trace/op_type.py b/weave/trace/op_type.py index 41cba6030d63..b0f6f3fce051 100644 --- a/weave/trace/op_type.py +++ b/weave/trace/op_type.py @@ -522,6 +522,11 @@ def save_instance(obj: "Op", artifact: MemTraceFilesArtifact, name: str) -> None op_function_code = get_source_or_fallback(obj, warnings=warnings) + if settings.should_redact_pii(): + from weave.trace.pii_redaction import redact_pii_string + + op_function_code = redact_pii_string(op_function_code) + if not WEAVE_OP_PATTERN.search(op_function_code): op_function_code = "@weave.op()\n" + op_function_code else: diff --git a/weave/trace/pii_redaction.py b/weave/trace/pii_redaction.py new file mode 100644 index 000000000000..6319ca915b19 --- /dev/null +++ b/weave/trace/pii_redaction.py @@ -0,0 +1,77 @@ +from typing import Any, Union + +from presidio_analyzer import AnalyzerEngine +from presidio_anonymizer import AnonymizerEngine + +from weave.trace import trace_sentry +from weave.trace.settings import redact_pii_fields + +DEFAULT_REDACTED_FIELDS = [ + "CREDIT_CARD", + "CRYPTO", + "EMAIL_ADDRESS", + "IBAN_CODE", + "IP_ADDRESS", + "LOCATION", + "PERSON", + "PHONE_NUMBER", + "US_SSN", + "US_BANK_NUMBER", + "US_DRIVER_LICENSE", + "US_PASSPORT", + "UK_NHS", + "UK_NINO", + "ES_NIF", + "IN_AADHAAR", + "IN_PAN", + "FI_PERSONAL_IDENTITY_CODE", +] + + +def redact_pii( + data: Union[dict[str, Any], str], +) -> Union[dict[str, Any], str]: + analyzer = AnalyzerEngine() + anonymizer = AnonymizerEngine() + fields = redact_pii_fields() + entities = DEFAULT_REDACTED_FIELDS if len(fields) == 0 else fields + + def redact_recursive(value: Any) -> Any: + if isinstance(value, str): + results = analyzer.analyze(text=value, language="en", entities=entities) + redacted = anonymizer.anonymize(text=value, analyzer_results=results) + return redacted.text + elif isinstance(value, dict): + return {k: redact_recursive(v) for k, v in value.items()} + elif isinstance(value, list): + return [redact_recursive(item) for item in value] + else: + return value + + if isinstance(data, str): + return redact_pii_string(data) + + return redact_recursive(data) + + +def redact_pii_string(data: str) -> str: + analyzer = AnalyzerEngine() + anonymizer = AnonymizerEngine() + fields = redact_pii_fields() + entities = DEFAULT_REDACTED_FIELDS if len(fields) == 0 else fields + results = analyzer.analyze(text=data, language="en", entities=entities) + redacted = anonymizer.anonymize(text=data, analyzer_results=results) + return redacted.text + + +def track_pii_redaction_enabled( + username: str, entity_name: str, project_name: str +) -> None: + trace_sentry.global_trace_sentry.track_event( + "pii_redaction_enabled", + { + "entity_name": entity_name, + "project_name": project_name, + }, + username, + ) diff --git a/weave/trace/settings.py b/weave/trace/settings.py index 885fa68f5188..f5d39a3e4672 100644 --- a/weave/trace/settings.py +++ b/weave/trace/settings.py @@ -62,6 +62,24 @@ class UserSettings(BaseModel): may lead to unexpected behavior. Make sure this is only set once at the start! """ + redact_pii: bool = False + """Toggles PII redaction using Microsoft Presidio. + + If True, redacts PII from trace data before sending to the server. + Can be overriden with the environment variable `WEAVE_REDACT_PII` + """ + + redact_pii_fields: list[str] = [] + """List of fields to redact. + + If redact_pii is True, this list of fields will be redacted. + If redact_pii is False, this list is ignored. + If this list is left empty, the default fields will be redacted. + + A list of supported fields can be found here: https://microsoft.github.io/presidio/supported_entities/ + Can be overriden with the environment variable `WEAVE_REDACT_PII_FIELDS` + """ + capture_client_info: bool = True """Toggles capture of client information (Python version, SDK version) for ops.""" @@ -154,6 +172,14 @@ def client_parallelism() -> Optional[int]: return _optional_int("client_parallelism") +def should_redact_pii() -> bool: + return _should("redact_pii") + + +def redact_pii_fields() -> list[str]: + return _list_str("redact_pii_fields") + + def use_server_cache() -> bool: return _should("use_server_cache") @@ -205,6 +231,12 @@ def _optional_int(name: str) -> Optional[int]: return _context_vars[name].get() +def _list_str(name: str) -> list[str]: + if env := os.getenv(f"{SETTINGS_PREFIX}{name.upper()}"): + return env.split(",") + return _context_vars[name].get() or [] + + def _optional_str(name: str) -> Optional[str]: if env := os.getenv(f"{SETTINGS_PREFIX}{name.upper()}"): return env diff --git a/weave/trace/trace_sentry.py b/weave/trace/trace_sentry.py index f7a944e18450..74a937b5ee4f 100644 --- a/weave/trace/trace_sentry.py +++ b/weave/trace/trace_sentry.py @@ -21,7 +21,7 @@ from typing import TYPE_CHECKING, Any, Callable, Literal if TYPE_CHECKING: - from sentry_sdk._types import ExcInfo + from sentry_sdk._types import Event, ExcInfo import sentry_sdk # type: ignore @@ -210,6 +210,27 @@ def wrapper(*args: Any, **kwargs: Any) -> Any: return watch_dec + # Not in the original WandB Sentry module + def track_event( + self, + event_name: str, + tags: dict[str, Any] | None = None, + username: str | None = None, + ) -> None: + """Track an event to Sentry.""" + assert self.hub is not None + + event_data: Event = { + "message": event_name, + "level": "info", + "tags": tags or {}, + "user": { + "username": username, + }, + } + + self.hub.capture_event(event_data) + def _is_local_dev_install(module: Any) -> bool: # Check if the __file__ attribute exists diff --git a/weave/trace/weave_client.py b/weave/trace/weave_client.py index b12b65b451f0..12ae44fec8a4 100644 --- a/weave/trace/weave_client.py +++ b/weave/trace/weave_client.py @@ -64,6 +64,7 @@ client_parallelism, should_capture_client_info, should_capture_system_info, + should_redact_pii, ) from weave.trace.table import Table from weave.trace.util import deprecated, log_once @@ -1032,11 +1033,12 @@ def create_call( unbound_op = maybe_unbind_method(op) op_def_ref = self._save_op(unbound_op) - inputs_redacted = redact_sensitive_keys(inputs) + inputs_sensitive_keys_redacted = redact_sensitive_keys(inputs) + if op.postprocess_inputs: - inputs_postprocessed = op.postprocess_inputs(inputs_redacted) + inputs_postprocessed = op.postprocess_inputs(inputs_sensitive_keys_redacted) else: - inputs_postprocessed = inputs_redacted + inputs_postprocessed = inputs_sensitive_keys_redacted if _global_postprocess_inputs: inputs_postprocessed = _global_postprocess_inputs(inputs_postprocessed) @@ -1101,7 +1103,15 @@ def create_call( project_id = self._project_id() def send_start_call() -> None: - inputs_json = to_json(inputs_with_refs, project_id, self, use_dictify=False) + maybe_redacted_inputs_with_refs = inputs_with_refs + if should_redact_pii(): + from weave.trace.pii_redaction import redact_pii + + maybe_redacted_inputs_with_refs = redact_pii(inputs_with_refs) + + inputs_json = to_json( + maybe_redacted_inputs_with_refs, project_id, self, use_dictify=False + ) self.server.call_start( CallStartReq( start=StartedCallSchemaForInsert( @@ -1206,7 +1216,15 @@ def finish_call( op._on_finish_handler(call, original_output, exception) def send_end_call() -> None: - output_json = to_json(output_as_refs, project_id, self, use_dictify=False) + maybe_redacted_output_as_refs = output_as_refs + if should_redact_pii(): + from weave.trace.pii_redaction import redact_pii + + maybe_redacted_output_as_refs = redact_pii(output_as_refs) + + output_json = to_json( + maybe_redacted_output_as_refs, project_id, self, use_dictify=False + ) self.server.call_end( CallEndReq( end=EndedCallSchemaForInsert( diff --git a/weave/trace/weave_init.py b/weave/trace/weave_init.py index a28f12543065..f09837d2b3f8 100644 --- a/weave/trace/weave_init.py +++ b/weave/trace/weave_init.py @@ -2,7 +2,7 @@ from weave.trace import autopatch, errors, init_message, trace_sentry, weave_client from weave.trace.context import weave_client_context as weave_client_context -from weave.trace.settings import use_server_cache +from weave.trace.settings import should_redact_pii, use_server_cache from weave.trace_server import sqlite_trace_server from weave.trace_server.trace_server_interface import TraceServerInterface from weave.trace_server_bindings import remote_http_trace_server @@ -126,6 +126,13 @@ def init_weave( autopatch.autopatch(autopatch_settings) username = get_username() + + # This is a temporary event to track the number of users who have enabled PII redaction. + if should_redact_pii(): + from weave.trace.pii_redaction import track_pii_redaction_enabled + + track_pii_redaction_enabled(username or "unknown", entity_name, project_name) + try: min_required_version = ( remote_server.server_info().min_required_weave_python_version From 75539bb68d54f34d7ab1494ad2075c4b76efd52a Mon Sep 17 00:00:00 2001 From: Josiah Lee Date: Thu, 20 Feb 2025 09:03:44 -0800 Subject: [PATCH 06/27] fix(weave): Properly default playground settings (#3673) * Dont use nan value for default default nTimes as well cleaner fix * use isNan * handle for 0 --- .../PlaygroundPage/usePlaygroundState.ts | 57 ++++++++++++++----- 1 file changed, 43 insertions(+), 14 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts index 59536222a968..a917930817fc 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/PlaygroundPage/usePlaygroundState.ts @@ -46,6 +46,42 @@ const DEFAULT_PLAYGROUND_STATE = { selectedChoiceIndex: 0, }; +type NumericPlaygroundStateKey = + | 'nTimes' + | 'temperature' + | 'topP' + | 'frequencyPenalty' + | 'presencePenalty'; + +const NUMERIC_SETTINGS_MAPPING: Record< + NumericPlaygroundStateKey, + { + pythonValue: string; + parseFn: (value: string) => number; + } +> = { + nTimes: { + pythonValue: 'n', + parseFn: parseInt, + }, + temperature: { + pythonValue: 'temperature', + parseFn: parseFloat, + }, + topP: { + pythonValue: 'top_p', + parseFn: parseFloat, + }, + frequencyPenalty: { + pythonValue: 'frequency_penalty', + parseFn: parseFloat, + }, + presencePenalty: { + pythonValue: 'presence_penalty', + parseFn: parseFloat, + }, +}; + export const usePlaygroundState = () => { const [playgroundStates, setPlaygroundStates] = useState([ DEFAULT_PLAYGROUND_STATE, @@ -97,23 +133,16 @@ export const usePlaygroundState = () => { } } } - if (inputs.n) { - newState.nTimes = parseInt(inputs.n, 10); - } - if (inputs.temperature) { - newState.temperature = parseFloat(inputs.temperature); - } if (inputs.response_format) { newState.responseFormat = inputs.response_format.type; } - if (inputs.top_p) { - newState.topP = parseFloat(inputs.top_p); - } - if (inputs.frequency_penalty) { - newState.frequencyPenalty = parseFloat(inputs.frequency_penalty); - } - if (inputs.presence_penalty) { - newState.presencePenalty = parseFloat(inputs.presence_penalty); + for (const [key, value] of Object.entries(NUMERIC_SETTINGS_MAPPING)) { + if (inputs[value.pythonValue] !== undefined) { + const parsedValue = value.parseFn(inputs[value.pythonValue]); + newState[key as NumericPlaygroundStateKey] = isNaN(parsedValue) + ? DEFAULT_PLAYGROUND_STATE[key as NumericPlaygroundStateKey] + : parsedValue; + } } if (inputs.model) { if (LLM_MAX_TOKENS_KEYS.includes(inputs.model as LLMMaxTokensKey)) { From e2657dcf675da82760699b326414acce1c2372ee Mon Sep 17 00:00:00 2001 From: Jamie Rasmussen <112953339+jamie-rasmussen@users.noreply.github.com> Date: Thu, 20 Feb 2025 11:13:07 -0600 Subject: [PATCH 07/27] chore(ui): fix typo in comment (#1053) --- .../Home/Browse3/datasets/EditableDatasetView.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/datasets/EditableDatasetView.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/datasets/EditableDatasetView.tsx index 3098a0c0fbf9..f769ee5ca536 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/datasets/EditableDatasetView.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/datasets/EditableDatasetView.tsx @@ -539,7 +539,7 @@ export const EditableDatasetView: FC = ({ '& .MuiDataGrid-cell': { padding: '0', // This vertical / horizontal center aligns 's inside of the columns - // Fixes an issure where boolean checkboxes are top-aligned pre-edit + // Fixes an issue where boolean checkboxes are top-aligned pre-edit '& .MuiBox-root': { '& span.cursor-inherit': { display: 'flex', From 5bcd420d186faa60b973e28bec6deb370536cb97 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Thu, 20 Feb 2025 12:59:20 -0500 Subject: [PATCH 08/27] fix(weave): Only print donut link if call actually succeeds (#3643) --- tests/conftest.py | 7 ++++- tests/trace/test_call_behaviours.py | 44 ++++++++++++++++---------- tests/trace/test_trace_settings.py | 48 ++++++++++++++--------------- tests/trace/util.py | 29 +++++++++++++++++ weave/trace/op.py | 2 -- weave/trace/settings.py | 8 ++--- weave/trace/weave_client.py | 19 ++++++++++-- 7 files changed, 106 insertions(+), 51 deletions(-) diff --git a/tests/conftest.py b/tests/conftest.py index 55a742c2c9c8..6c042aca048a 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -562,15 +562,20 @@ def client_creator(request): def client( autopatch_settings: typing.Optional[autopatch.AutopatchSettings] = None, global_attributes: typing.Optional[dict[str, typing.Any]] = None, + settings: typing.Optional[weave.trace.settings.UserSettings] = None, ): + if settings is not None: + weave.trace.settings.parse_and_apply_settings(settings) inited_client = create_client(request, autopatch_settings, global_attributes) try: yield inited_client.client finally: inited_client.reset() autopatch.reset_autopatch() - # Reset global attributes weave.trace.api._global_attributes = {} + weave.trace.settings.parse_and_apply_settings( + weave.trace.settings.UserSettings() + ) yield client diff --git a/tests/trace/test_call_behaviours.py b/tests/trace/test_call_behaviours.py index f94a4b2e67e8..6fbe608ddc65 100644 --- a/tests/trace/test_call_behaviours.py +++ b/tests/trace/test_call_behaviours.py @@ -1,10 +1,7 @@ -import io -import sys -from collections import Counter - import pytest import weave +from tests.trace.util import capture_output, flushing_callback from weave.trace.constants import TRACE_CALL_EMOJI @@ -19,21 +16,36 @@ async def afunc(): def test_call_prints_link(client): - captured_stdout = io.StringIO() - sys.stdout = captured_stdout + callbacks = [flushing_callback(client)] + with capture_output(callbacks) as captured: + func() + + assert captured.getvalue().count(TRACE_CALL_EMOJI) == 1 + + +@pytest.mark.disable_logging_error_check +def test_call_doesnt_print_link_if_failed(client_with_throwing_server): + callbacks = [flushing_callback(client_with_throwing_server)] + with capture_output(callbacks) as captured: + func() - func() - output = captured_stdout.getvalue() - c = Counter(output) - assert c[TRACE_CALL_EMOJI] == 1 + assert captured.getvalue().count(TRACE_CALL_EMOJI) == 0 @pytest.mark.asyncio async def test_async_call_prints_link(client): - captured_stdout = io.StringIO() - sys.stdout = captured_stdout + callbacks = [flushing_callback(client)] + with capture_output(callbacks) as captured: + await afunc() + + assert captured.getvalue().count(TRACE_CALL_EMOJI) == 1 + + +@pytest.mark.disable_logging_error_check +@pytest.mark.asyncio +async def test_async_call_doesnt_print_link_if_failed(client_with_throwing_server): + callbacks = [flushing_callback(client_with_throwing_server)] + with capture_output(callbacks) as captured: + await afunc() - await afunc() - output = captured_stdout.getvalue() - c = Counter(output) - assert c[TRACE_CALL_EMOJI] == 1 + assert captured.getvalue().count(TRACE_CALL_EMOJI) == 0 diff --git a/tests/trace/test_trace_settings.py b/tests/trace/test_trace_settings.py index 9882738b0f83..52060724d2a5 100644 --- a/tests/trace/test_trace_settings.py +++ b/tests/trace/test_trace_settings.py @@ -1,6 +1,4 @@ -import io import os -import sys import time import timeit from unittest import mock @@ -8,6 +6,7 @@ import pytest import weave +from tests.trace.util import capture_output, flushing_callback from weave.trace.constants import TRACE_CALL_EMOJI from weave.trace.settings import UserSettings, parse_and_apply_settings from weave.trace.weave_client import get_parallelism_settings @@ -50,38 +49,37 @@ def test_disabled_env(client): ), "Disabled weave should be faster than enabled weave" -def test_print_call_link_setting(client): - captured_stdout = io.StringIO() - sys.stdout = captured_stdout +def test_print_call_link_setting(client_creator): + with client_creator(settings=UserSettings(print_call_link=False)) as client: + callbacks = [flushing_callback(client)] + with capture_output(callbacks) as captured: + func() + assert TRACE_CALL_EMOJI not in captured.getvalue() - parse_and_apply_settings(UserSettings(print_call_link=False)) - func() - - output = captured_stdout.getvalue() - assert TRACE_CALL_EMOJI not in output - - parse_and_apply_settings(UserSettings(print_call_link=True)) - func() - - output = captured_stdout.getvalue() - assert TRACE_CALL_EMOJI in output + with client_creator(settings=UserSettings(print_call_link=True)) as client: + callbacks = [flushing_callback(client)] + with capture_output(callbacks) as captured: + func() + assert TRACE_CALL_EMOJI in captured.getvalue() def test_print_call_link_env(client): - captured_stdout = io.StringIO() - sys.stdout = captured_stdout - os.environ["WEAVE_PRINT_CALL_LINK"] = "false" - func() + callbacks = [flushing_callback(client)] + with capture_output(callbacks) as captured: + func() - output = captured_stdout.getvalue() - assert TRACE_CALL_EMOJI not in output + assert TRACE_CALL_EMOJI not in captured.getvalue() os.environ["WEAVE_PRINT_CALL_LINK"] = "true" - func() + callbacks = [flushing_callback(client)] + with capture_output(callbacks) as captured: + func() + + assert TRACE_CALL_EMOJI in captured.getvalue() - output = captured_stdout.getvalue() - assert TRACE_CALL_EMOJI in output + # Clean up after test + del os.environ["WEAVE_PRINT_CALL_LINK"] def test_should_capture_code_setting(client): diff --git a/tests/trace/util.py b/tests/trace/util.py index a24c8f48fb94..08d95e7cc772 100644 --- a/tests/trace/util.py +++ b/tests/trace/util.py @@ -1,5 +1,10 @@ import datetime +import io import re +import sys +import time +from collections.abc import Callable +from contextlib import contextmanager from typing import Optional from weave.trace_server.sqlite_trace_server import SqliteTraceServer @@ -95,3 +100,27 @@ def get_info_loglines( line[attr] = getattr(record, attr) lines.append(line) return lines + + +@contextmanager +def capture_output(callbacks: list[Callable[[], None]]): + captured_stdout = io.StringIO() + old_stdout = sys.stdout + sys.stdout = captured_stdout + + try: + yield captured_stdout + except DummyTestException: + pass + finally: + for callback in callbacks: + callback() + sys.stdout = old_stdout + + +def flushing_callback(client): + def _callback(): + client.future_executor.flush() + time.sleep(0.01) # Ensure on_finish_callback has time to fire post-flush + + return _callback diff --git a/weave/trace/op.py b/weave/trace/op.py index a95089262d41..d5231ad466b3 100644 --- a/weave/trace/op.py +++ b/weave/trace/op.py @@ -291,8 +291,6 @@ def finish(output: Any = None, exception: BaseException | None = None) -> None: exception, op=__op, ) - if not call_context.get_current_call(): - print_call_link(__call) def on_output(output: Any) -> Any: if handler := getattr(__op, "_on_output_handler", None): diff --git a/weave/trace/settings.py b/weave/trace/settings.py index f5d39a3e4672..8a613c911dee 100644 --- a/weave/trace/settings.py +++ b/weave/trace/settings.py @@ -199,12 +199,12 @@ def scorers_dir() -> str: def parse_and_apply_settings( settings: Optional[Union[UserSettings, dict[str, Any]]] = None, ) -> None: - if settings is None: - user_settings = UserSettings() - if isinstance(settings, dict): - user_settings = UserSettings.model_validate(settings) if isinstance(settings, UserSettings): user_settings = settings + elif isinstance(settings, dict): + user_settings = UserSettings.model_validate(settings) + else: + user_settings = UserSettings() user_settings.apply() diff --git a/weave/trace/weave_client.py b/weave/trace/weave_client.py index 12ae44fec8a4..039b90bdf7e8 100644 --- a/weave/trace/weave_client.py +++ b/weave/trace/weave_client.py @@ -45,7 +45,7 @@ pydantic_object_record, ) from weave.trace.objectify import maybe_objectify -from weave.trace.op import Op, as_op, is_op, maybe_unbind_method +from weave.trace.op import Op, as_op, is_op, maybe_unbind_method, print_call_link from weave.trace.op import op as op_deco from weave.trace.refs import ( CallRef, @@ -64,6 +64,7 @@ client_parallelism, should_capture_client_info, should_capture_system_info, + should_print_call_link, should_redact_pii, ) from weave.trace.table import Table @@ -1102,7 +1103,9 @@ def create_call( started_at = datetime.datetime.now(tz=datetime.timezone.utc) project_id = self._project_id() - def send_start_call() -> None: + _should_print_call_link = should_print_call_link() + + def send_start_call() -> bool: maybe_redacted_inputs_with_refs = inputs_with_refs if should_redact_pii(): from weave.trace.pii_redaction import redact_pii @@ -1128,8 +1131,18 @@ def send_start_call() -> None: ) ) ) + return True - self.future_executor.defer(send_start_call) + def on_complete(f: Future) -> None: + try: + if f.result() and not call_context.get_current_call(): + if _should_print_call_link: + print_call_link(call) + except Exception: + pass + + fut = self.future_executor.defer(send_start_call) + fut.add_done_callback(on_complete) if use_stack: call_context.push_call(call) From 4b7dfc0a59d9c7634b43b1c30a442b5a347ec613 Mon Sep 17 00:00:00 2001 From: Jamie Rasmussen <112953339+jamie-rasmussen@users.noreply.github.com> Date: Thu, 20 Feb 2025 12:03:24 -0600 Subject: [PATCH 09/27] chore(ui): add dataset export to use tab (#3714) --- .../pages/ObjectsPage/Tabs/TabUseDataset.tsx | 22 +++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ObjectsPage/Tabs/TabUseDataset.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ObjectsPage/Tabs/TabUseDataset.tsx index 6cdf25b18b5f..68670f3c3c93 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ObjectsPage/Tabs/TabUseDataset.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/ObjectsPage/Tabs/TabUseDataset.tsx @@ -29,7 +29,10 @@ export const TabUseDataset = ({ const isParentObject = !ref.artifactRefExtra; const isRow = ref.artifactRefExtra?.startsWith(ROW_PATH_PREFIX) ?? false; const label = isParentObject ? 'dataset version' : isRow ? 'row' : 'object'; - let pythonName = isValidVarName(name) ? name : 'dataset'; + const versionName = `${name}_v${versionIndex}`; + let pythonName = isValidVarName(versionName) + ? versionName + : `dataset_v${versionIndex}`; if (isRow) { pythonName += '_row'; } @@ -37,9 +40,13 @@ export const TabUseDataset = ({ // TODO: Row references are not yet supported, you get: // ValueError: '/' not currently supported in short-form URI let long = ''; + let download = ''; + let downloadCopyText = ''; if (!isRow && 'projectName' in ref) { - long = `weave.init('${ref.projectName}') + long = `weave.init('${ref.entityName}/${ref.projectName}') ${pythonName} = weave.ref('${ref.artifactName}:v${versionIndex}').get()`; + download = `${pythonName}.to_pandas().to_csv("${versionName}.csv", index=False)`; + downloadCopyText = long + '\n' + download; } return ( @@ -72,6 +79,17 @@ ${pythonName} = weave.ref('${ref.artifactName}:v${versionIndex}').get()`; )} + {download && ( + + For further analysis or export you can convert this {label} to a + Pandas DataFrame, for example: + + + )} ); From 7f5b48099f3d0ba072b5812b8921006e120590a8 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Thu, 20 Feb 2025 14:38:25 -0500 Subject: [PATCH 10/27] chore(weave_ts): Temporarily disable live tests (#3721) --- sdks/node/package.json | 8 ++++---- sdks/node/src/__tests__/live/dataset.test.ts | 2 +- sdks/node/src/__tests__/live/fn.test.ts | 2 +- sdks/node/src/__tests__/live/publish.test.ts | 2 +- sdks/node/src/__tests__/live/table.test.ts | 2 +- sdks/node/src/__tests__/live/weaveObject.test.ts | 2 +- tests/trace/type_handlers/Image/image_test.py | 1 + 7 files changed, 10 insertions(+), 9 deletions(-) diff --git a/sdks/node/package.json b/sdks/node/package.json index 228b157c018a..7fd2b75e4e83 100644 --- a/sdks/node/package.json +++ b/sdks/node/package.json @@ -67,10 +67,10 @@ ], "coverageThreshold": { "global": { - "branches": 80, - "functions": 80, - "lines": 80, - "statements": 80 + "branches": 0, + "functions": 0, + "lines": 0, + "statements": 0 } } }, diff --git a/sdks/node/src/__tests__/live/dataset.test.ts b/sdks/node/src/__tests__/live/dataset.test.ts index 09e73ef95c7e..589e7af61ca4 100644 --- a/sdks/node/src/__tests__/live/dataset.test.ts +++ b/sdks/node/src/__tests__/live/dataset.test.ts @@ -1,7 +1,7 @@ import {init, login} from '../../clientApi'; import {Dataset} from '../../dataset'; -describe('Dataset', () => { +describe.skip('Dataset', () => { beforeEach(async () => { await login(process.env.WANDB_API_KEY ?? ''); }); diff --git a/sdks/node/src/__tests__/live/fn.test.ts b/sdks/node/src/__tests__/live/fn.test.ts index 3635255167a8..da4dda16ba65 100644 --- a/sdks/node/src/__tests__/live/fn.test.ts +++ b/sdks/node/src/__tests__/live/fn.test.ts @@ -27,7 +27,7 @@ class ParametrizedFunction extends CallableObject< } } -describe('Fn', () => { +describe.skip('Fn', () => { beforeEach(async () => { await login(process.env.WANDB_API_KEY ?? ''); }); diff --git a/sdks/node/src/__tests__/live/publish.test.ts b/sdks/node/src/__tests__/live/publish.test.ts index 03812c37a3d9..9f0729f0c0ef 100644 --- a/sdks/node/src/__tests__/live/publish.test.ts +++ b/sdks/node/src/__tests__/live/publish.test.ts @@ -1,7 +1,7 @@ import {init, login} from '../../clientApi'; import {Dataset, op, weaveAudio, weaveImage} from '../../index'; -describe('Publishing Various Data Types', () => { +describe.skip('Publishing Various Data Types', () => { beforeEach(async () => { await login(process.env.WANDB_API_KEY ?? ''); }); diff --git a/sdks/node/src/__tests__/live/table.test.ts b/sdks/node/src/__tests__/live/table.test.ts index cbfbee0316e2..77acbc33be29 100644 --- a/sdks/node/src/__tests__/live/table.test.ts +++ b/sdks/node/src/__tests__/live/table.test.ts @@ -1,7 +1,7 @@ import {init, login} from '../../clientApi'; import {Table} from '../../table'; -describe('table', () => { +describe.skip('Table', () => { beforeEach(async () => { await login(process.env.WANDB_API_KEY ?? ''); }); diff --git a/sdks/node/src/__tests__/live/weaveObject.test.ts b/sdks/node/src/__tests__/live/weaveObject.test.ts index 7f3d34550cad..823b554e7739 100644 --- a/sdks/node/src/__tests__/live/weaveObject.test.ts +++ b/sdks/node/src/__tests__/live/weaveObject.test.ts @@ -17,7 +17,7 @@ class ExampleObject extends WeaveObject { } } -describe('weaveObject', () => { +describe.skip('WeaveObject', () => { beforeEach(async () => { await login(process.env.WANDB_API_KEY ?? ''); }); diff --git a/tests/trace/type_handlers/Image/image_test.py b/tests/trace/type_handlers/Image/image_test.py index 5f6d634c52b9..b08bc5032159 100644 --- a/tests/trace/type_handlers/Image/image_test.py +++ b/tests/trace/type_handlers/Image/image_test.py @@ -186,6 +186,7 @@ def model(img: Image) -> dict[str, str]: assert isinstance(res["model_latency"]["mean"], (int, float)) +@pytest.mark.skip("Temporarily skip live tests") @pytest.mark.asyncio async def test_many_images_will_consistently_log(): # This test is a bit strange -- I can't get the issue to repro inside pytest, but From d5df054d1ef4080708d642989029d2b0f227083c Mon Sep 17 00:00:00 2001 From: J2-D2-3PO <188380414+J2-D2-3PO@users.noreply.github.com> Date: Thu, 20 Feb 2025 12:47:07 -0700 Subject: [PATCH 11/27] docs(weave): update env vars page (#3710) --- docs/docs/guides/core-types/env-vars.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/docs/guides/core-types/env-vars.md b/docs/docs/guides/core-types/env-vars.md index 03acf8955a23..0016fc70bafb 100644 --- a/docs/docs/guides/core-types/env-vars.md +++ b/docs/docs/guides/core-types/env-vars.md @@ -20,6 +20,7 @@ os.environ["WEAVE_PRINT_CALL_LINK"] = "false" | Variable | Type | Default | Description | |----------|------|---------|-------------| +| `WANDB_API_KEY` | `string` | `None` | If set, automatically log into W&B Weave without being prompted for your API key. To generate an API key, log in to your W&B account and go to [https://wandb.ai/authorize](https://wandb.ai/authorize). | | `WEAVE_DISABLED` | `bool` | `false` | When set to `true`, disables all Weave tracing. Weave ops will behave like regular functions. | | `WEAVE_PRINT_CALL_LINK` | `bool` | `true` | Controls whether to print a link to the Weave UI when calling a Weave op. | | `WEAVE_CAPTURE_CODE` | `bool` | `true` | Controls whether to save code for ops so they can be reloaded for later use. | From 4831a69dd35bb096b3ab4606e2a76f33d1478eb7 Mon Sep 17 00:00:00 2001 From: J2-D2-3PO <188380414+J2-D2-3PO@users.noreply.github.com> Date: Thu, 20 Feb 2025 12:48:05 -0700 Subject: [PATCH 12/27] docs(weave): make tracing FAQ discoverable, add new FAQ --- docs/docs/guides/tracking/faqs.md | 53 ++++++++++++++++++++++++++++++ docs/docs/guides/tracking/index.md | 46 +------------------------- docs/sidebars.ts | 1 + 3 files changed, 55 insertions(+), 45 deletions(-) create mode 100644 docs/docs/guides/tracking/faqs.md diff --git a/docs/docs/guides/tracking/faqs.md b/docs/docs/guides/tracking/faqs.md new file mode 100644 index 000000000000..9303dc46e2e0 --- /dev/null +++ b/docs/docs/guides/tracking/faqs.md @@ -0,0 +1,53 @@ +# FAQs + +The following page provides answers to common questions about Weave tracing. + +## What information does Weave capture for a function? + +A function can be designated as a Weave [Op](/guides/tracking/ops) either manually through a decorator or automatically as part of an enabled integration. When an Op executes, Weave captures detailed information to support your analysis. Weave provides you with fine grained control over what is logged in case you would like something different than the default; see below for configuration examples. + +- **Code capture** - Weave captures a representation of the Op's source code. This includes inline comments as well as recursively capturing the value of variables or the source of non-Op functions that were called. Code capture allows you to see what your function was doing even if the change was not saved to your source control system. Code capture is used as part of Op versioning, allowing you to understand the evaluation of your code over time. If code capture is disabled, a hash value will be used instead. + +- **Function name, inputs, and outputs** - The name of the function will be captured but can be [overridden](/guides/tracking/tracing/#call-display-name). A JSON-based representation of the inputs and outputs will be captured. For inputs, argument name will be capture in addition to value. Weave lets you [customize the logging](/guides/tracking/ops#customize-logged-inputs-and-outputs) of inputs and outputs - you can specify a function to add/remove/modify what is logged. + +- **Op call hierarchy** - When an Op is called within the context of another Op executing, this relationship is captured, even in cases + where there is an intermediate non-Op function executing. This relationship between Op calls is used to provide a "Trace tree". + +- **Execution status and exceptions** - Weave tracks whether a function is executing, finished, or errored. If an exception occurs during execution the error message and a stack track is recorded. + +- **System information** - Weave may capture information about which operating system the client is running on including detailed version information. + +- **Client information** - Weave may capture information about the Weave client itself, such as the programming language in use and detailed version information for that language and the Weave client library. + +- **Timing** - The execution start and end time is captured and also used for latency calculations. + +- **Token usage** - In some [integrations](/guides/integrations/) LLM token usage counts may be automatically logged. + +- **User and run context** - Logging is associated with a W&B user account. That will be captured along with any wandb Run context. + +- **Derived information** - Weave may compute derived information from the raw information logged, for example a cost estimate may be calculated based on token usage and knowledge of the model used. Weave also aggregates some information over calls. + +- **Additional information you choose** - You can choose to log [custom attributes](/guides/core-types/models#track-production-calls) as part of your call or attach [feedback](/guides/tracking/feedback#add-feedback-to-a-call) to a call. + +## How can I disable code capture? + +You can disable code capture during Weave client initialization: `weave.init("entity/project", settings={"capture_code": False})`. +You can also use the [environment variable](/guides/core-types/env-vars) `WEAVE_CAPTURE_CODE=false`. + +## How can I disable system information capture? + +You can disable system information capture during Weave client initialization: `weave.init("entity/project", settings={"capture_system_info": False})`. + +## How can I disable client information capture? + +You can disable client information capture during Weave client initialization: `weave.init("entity/project", settings={"capture_client_info": False})`. + +## Will Weave affect my function's execution speed? + +The overhead of Weave logging is typically negligible compared to making a call to an LLM. +To minimize Weave's impact on the speed of your Op's execution, its network activity happens on a background thread. +When your program is exiting it may appear to pause while any remaining enqueued data is logged. + +## How is Weave data ingestion calculated? + +We define ingested bytes as bytes that we receive, process, and store on your behalf. This includes trace metadata, LLM inputs/outputs, and any other information you explicitly log to Weave, but does not include communication overhead (e.g., HTTP headers) or any other data that is not placed in long-term storage. We count bytes as "ingested" only once at the time they are received and stored. diff --git a/docs/docs/guides/tracking/index.md b/docs/docs/guides/tracking/index.md index ca27147dba5b..60203cf9723c 100644 --- a/docs/docs/guides/tracking/index.md +++ b/docs/docs/guides/tracking/index.md @@ -34,48 +34,4 @@ By leveraging these tracing capabilities, you can gain deeper insights into your ## FAQs -### What information does Weave capture for a function? - -A function can be designated as a Weave [Op](/guides/tracking/ops) either manually through a decorator or automatically as part of an enabled integration. When an Op executes, Weave captures detailed information to support your analysis. Weave provides you with fine grained control over what is logged in case you would like something different than the default; see below for configuration examples. - -- **Code capture** - Weave captures a representation of the Op's source code. This includes inline comments as well as recursively capturing the value of variables or the source of non-Op functions that were called. Code capture allows you to see what your function was doing even if the change was not saved to your source control system. Code capture is used as part of Op versioning, allowing you to understand the evaluation of your code over time. If code capture is disabled, a hash value will be used instead. - -- **Function name, inputs, and outputs** - The name of the function will be captured but can be [overridden](/guides/tracking/tracing/#call-display-name). A JSON-based representation of the inputs and outputs will be captured. For inputs, argument name will be capture in addition to value. Weave lets you [customize the logging](/guides/tracking/ops#customize-logged-inputs-and-outputs) of inputs and outputs - you can specify a function to add/remove/modify what is logged. - -- **Op call hierarchy** - When an Op is called within the context of another Op executing, this relationship is captured, even in cases - where there is an intermediate non-Op function executing. This relationship between Op calls is used to provide a "Trace tree". - -- **Execution status and exceptions** - Weave tracks whether a function is executing, finished, or errored. If an exception occurs during execution the error message and a stack track is recorded. - -- **System information** - Weave may capture information about which operating system the client is running on including detailed version information. - -- **Client information** - Weave may capture information about the Weave client itself, such as the programming language in use and detailed version information for that language and the Weave client library. - -- **Timing** - The execution start and end time is captured and also used for latency calculations. - -- **Token usage** - In some [integrations](/guides/integrations/) LLM token usage counts may be automatically logged. - -- **User and run context** - Logging is associated with a W&B user account. That will be captured along with any wandb Run context. - -- **Derived information** - Weave may compute derived information from the raw information logged, for example a cost estimate may be calculated based on token usage and knowledge of the model used. Weave also aggregates some information over calls. - -- **Additional information you choose** - You can choose to log [custom attributes](/guides/core-types/models#track-production-calls) as part of your call or attach [feedback](/guides/tracking/feedback#add-feedback-to-a-call) to a call. - -### How can I disable code capture? - -You can disable code capture during Weave client initialization: `weave.init("entity/project", settings={"capture_code": False})`. -You can also use the [environment variable](/guides/core-types/env-vars) `WEAVE_CAPTURE_CODE=false`. - -### How can I disable system information capture? - -You can disable system information capture during Weave client initialization: `weave.init("entity/project", settings={"capture_system_info": False})`. - -### How can I disable client information capture? - -You can disable client information capture during Weave client initialization: `weave.init("entity/project", settings={"capture_client_info": False})`. - -### Will Weave affect my function's execution speed? - -The overhead of Weave logging is typically negligible compared to making a call to an LLM. -To minimize Weave's impact on the speed of your Op's execution, its network activity happens on a background thread. -When your program is exiting it may appear to pause while any remaining enqueued data is logged. +For answers to common questions about Weave tracing, see the [FAQs page](./faqs.md) diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 1bc82502109f..2a550864aa25 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -52,6 +52,7 @@ const sidebars: SidebarsConfig = { "guides/tracking/tracing", "guides/tracking/ops", "guides/tracking/objects", + "guides/tracking/faqs" ], }, { From d0c7ec3de8c33b2945ed791aa3faf939a1380ce8 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Thu, 20 Feb 2025 14:49:40 -0500 Subject: [PATCH 13/27] chore(weave): Dictify scorer results (#3720) --- tests/scorers/test_call_apply_scorer.py | 38 ++++++++++++++++++++- tests/scorers/test_trust_scorer.py | 2 +- tests/trace/test_evaluations.py | 4 +-- weave/flow/scorer.py | 9 +++++ weave/scorers/coherence_scorer.py | 6 ++-- weave/scorers/context_relevance_scorer.py | 6 ++-- weave/scorers/fluency_scorer.py | 6 ++-- weave/scorers/hallucination_scorer.py | 13 ++----- weave/scorers/moderation_scorer.py | 7 ++-- weave/scorers/presidio_guardrail.py | 2 +- weave/scorers/prompt_injection_guardrail.py | 2 +- weave/scorers/trust_scorer.py | 2 +- weave/scorers/utils.py | 11 +----- weave/trace/serialize.py | 9 +++++ 14 files changed, 73 insertions(+), 44 deletions(-) diff --git a/tests/scorers/test_call_apply_scorer.py b/tests/scorers/test_call_apply_scorer.py index ebf92ce6a027..d4445fee2ea8 100644 --- a/tests/scorers/test_call_apply_scorer.py +++ b/tests/scorers/test_call_apply_scorer.py @@ -3,7 +3,7 @@ import pytest import weave -from weave.flow.scorer import ApplyScorerResult +from weave.flow.scorer import ApplyScorerResult, WeaveScorerResult from weave.trace.op import OpCallError from weave.trace.refs import CallRef from weave.trace.weave_client import Call, Op, WeaveClient @@ -209,3 +209,39 @@ async def score(self, x, output): scorer, additional_scorer_kwargs={"correct_answer": 2} ) do_assertions_for_scorer_op(apply_score_res, call, scorer, client) + + +@pytest.mark.asyncio +async def test_scorer_with_weave_scorer_result_output(client: WeaveClient): + @weave.op + def predict(x): + return x + 1 + + class MyScorer(weave.Scorer): + offset: int + + @weave.op + def score(self, x, output, correct_answer): + return WeaveScorerResult( + passed=False, metadata={"score": 0.8, "score_2": 0.8} + ) + + scorer = MyScorer(offset=0) + + _, call = predict.call(1) + apply_score_res = await call.apply_scorer( + scorer, additional_scorer_kwargs={"correct_answer": 2} + ) + + assert apply_score_res.score_call.id is not None + + feedbacks = list(call.feedback) + assert len(feedbacks) == 1 + target_feedback = feedbacks[0] + assert target_feedback.feedback_type == "wandb.runnable.MyScorer" + assert isinstance(target_feedback.payload, dict) + assert target_feedback.payload["output"]["passed"] == False + assert target_feedback.payload["output"]["metadata"] == { + "score": 0.8, + "score_2": 0.8, + } diff --git a/tests/scorers/test_trust_scorer.py b/tests/scorers/test_trust_scorer.py index 3033c4166fe9..ece970101f07 100644 --- a/tests/scorers/test_trust_scorer.py +++ b/tests/scorers/test_trust_scorer.py @@ -4,8 +4,8 @@ import weave from tests.scorers.test_utils import TINY_MODEL_PATHS +from weave.flow.scorer import WeaveScorerResult from weave.scorers.trust_scorer import WeaveTrustScorerV1 -from weave.scorers.utils import WeaveScorerResult @pytest.fixture diff --git a/tests/trace/test_evaluations.py b/tests/trace/test_evaluations.py index e4fe5c3f98d2..a2e532bee9a3 100644 --- a/tests/trace/test_evaluations.py +++ b/tests/trace/test_evaluations.py @@ -768,8 +768,8 @@ def function_score(image, dc, model, obj, text, output) -> bool: # the correct behavior of the dataset (the should be the # MyDataclass, MyModel, and MyObj) assert isinstance(row["dc"], str) # MyDataclass - assert isinstance(row["model"], str) # MyModel - assert isinstance(row["obj"], str) # MyObj + assert isinstance(row["model"], str) # MyModel + assert isinstance(row["obj"], str) # MyObj assert isinstance(row["text"], str) access_log = client.server.attribute_access_log diff --git a/weave/flow/scorer.py b/weave/flow/scorer.py index 9616fb0c4500..6bcf8c04a012 100644 --- a/weave/flow/scorer.py +++ b/weave/flow/scorer.py @@ -365,3 +365,12 @@ async def apply_scorer_async( raise OpCallError(message) return ApplyScorerSuccess(result=result, score_call=score_call) + + +class WeaveScorerResult(BaseModel): + """The result of a weave.Scorer.score method.""" + + passed: bool = Field(description="Whether the scorer passed or not") + metadata: dict[str, Any] = Field( + description="Any extra information from the scorer like numerical scores, model outputs, etc." + ) diff --git a/weave/scorers/coherence_scorer.py b/weave/scorers/coherence_scorer.py index 67abd2da678a..46f4fb678200 100644 --- a/weave/scorers/coherence_scorer.py +++ b/weave/scorers/coherence_scorer.py @@ -3,12 +3,10 @@ from pydantic import Field, validate_call import weave +from weave.flow.scorer import WeaveScorerResult from weave.scorers.default_models import MODEL_PATHS from weave.scorers.scorer_types import HuggingFacePipelineScorer -from weave.scorers.utils import ( - WeaveScorerResult, - load_hf_model_weights, -) +from weave.scorers.utils import load_hf_model_weights class WeaveCoherenceScorerV1(HuggingFacePipelineScorer): diff --git a/weave/scorers/context_relevance_scorer.py b/weave/scorers/context_relevance_scorer.py index c12b7a27e6a8..59a5af9b1c2b 100644 --- a/weave/scorers/context_relevance_scorer.py +++ b/weave/scorers/context_relevance_scorer.py @@ -4,12 +4,10 @@ from pydantic import Field, validate_call import weave +from weave.flow.scorer import WeaveScorerResult from weave.scorers.default_models import MODEL_PATHS from weave.scorers.scorer_types import HuggingFaceScorer -from weave.scorers.utils import ( - WeaveScorerResult, - load_hf_model_weights, -) +from weave.scorers.utils import load_hf_model_weights CONTEXT_RELEVANCE_SCORER_THRESHOLD = 0.55 diff --git a/weave/scorers/fluency_scorer.py b/weave/scorers/fluency_scorer.py index e357a3bb0bd9..07eb0dd3984d 100644 --- a/weave/scorers/fluency_scorer.py +++ b/weave/scorers/fluency_scorer.py @@ -1,12 +1,10 @@ from pydantic import Field, validate_call import weave +from weave.flow.scorer import WeaveScorerResult from weave.scorers.default_models import MODEL_PATHS from weave.scorers.scorer_types import HuggingFacePipelineScorer -from weave.scorers.utils import ( - WeaveScorerResult, - load_hf_model_weights, -) +from weave.scorers.utils import load_hf_model_weights FLUENCY_SCORER_THRESHOLD = 0.5 diff --git a/weave/scorers/hallucination_scorer.py b/weave/scorers/hallucination_scorer.py index 440e34af7eb8..f59cd9401442 100644 --- a/weave/scorers/hallucination_scorer.py +++ b/weave/scorers/hallucination_scorer.py @@ -1,21 +1,14 @@ import logging -from typing import TYPE_CHECKING, Union +from typing import Union from litellm import acompletion from pydantic import BaseModel, Field, PrivateAttr, validate_call import weave +from weave.flow.scorer import WeaveScorerResult from weave.scorers.default_models import OPENAI_DEFAULT_MODEL from weave.scorers.scorer_types import HuggingFacePipelineScorer, LLMScorer -from weave.scorers.utils import ( - MODEL_PATHS, - WeaveScorerResult, - load_hf_model_weights, - stringify, -) - -if TYPE_CHECKING: - pass +from weave.scorers.utils import MODEL_PATHS, load_hf_model_weights, stringify logger = logging.getLogger(__name__) diff --git a/weave/scorers/moderation_scorer.py b/weave/scorers/moderation_scorer.py index 240e15736650..31bf78cb0058 100644 --- a/weave/scorers/moderation_scorer.py +++ b/weave/scorers/moderation_scorer.py @@ -4,13 +4,10 @@ from pydantic import Field, PrivateAttr, validate_call import weave +from weave.flow.scorer import WeaveScorerResult from weave.scorers.default_models import OPENAI_DEFAULT_MODERATION_MODEL from weave.scorers.scorer_types import RollingWindowScorer -from weave.scorers.utils import ( - MODEL_PATHS, - WeaveScorerResult, - load_hf_model_weights, -) +from weave.scorers.utils import MODEL_PATHS, load_hf_model_weights if TYPE_CHECKING: from torch import Tensor diff --git a/weave/scorers/presidio_guardrail.py b/weave/scorers/presidio_guardrail.py index f600e04e1f0f..7185b6a3a13b 100644 --- a/weave/scorers/presidio_guardrail.py +++ b/weave/scorers/presidio_guardrail.py @@ -4,7 +4,7 @@ from pydantic import Field, PrivateAttr import weave -from weave.scorers.utils import WeaveScorerResult +from weave.flow.scorer import WeaveScorerResult if TYPE_CHECKING: from presidio_analyzer import ( diff --git a/weave/scorers/prompt_injection_guardrail.py b/weave/scorers/prompt_injection_guardrail.py index ffe333d7aa68..0713e2e3a66c 100644 --- a/weave/scorers/prompt_injection_guardrail.py +++ b/weave/scorers/prompt_injection_guardrail.py @@ -5,13 +5,13 @@ from pydantic import BaseModel import weave +from weave.flow.scorer import WeaveScorerResult from weave.scorers.default_models import OPENAI_DEFAULT_MODEL from weave.scorers.prompts import ( PROMPT_INJECTION_GUARDRAIL_SYSTEM_PROMPT, PROMPT_INJECTION_GUARDRAIL_USER_PROMPT, PROMPT_INJECTION_SURVEY_PAPER_SUMMARY, ) -from weave.scorers.utils import WeaveScorerResult class LLMGuardrailReasoning(BaseModel): diff --git a/weave/scorers/trust_scorer.py b/weave/scorers/trust_scorer.py index f5452dbd8c4a..7fa134691e98 100644 --- a/weave/scorers/trust_scorer.py +++ b/weave/scorers/trust_scorer.py @@ -12,6 +12,7 @@ from pydantic import Field, PrivateAttr, validate_call import weave +from weave.flow.scorer import WeaveScorerResult from weave.scorers import ( WeaveCoherenceScorerV1, WeaveContextRelevanceScorerV1, @@ -26,7 +27,6 @@ TOXICITY_CATEGORY_THRESHOLD, TOXICITY_TOTAL_THRESHOLD, ) -from weave.scorers.utils import WeaveScorerResult class WeaveTrustScorerError(Exception): diff --git a/weave/scorers/utils.py b/weave/scorers/utils.py index f659380cfa73..51159e956196 100644 --- a/weave/scorers/utils.py +++ b/weave/scorers/utils.py @@ -3,21 +3,12 @@ from pathlib import Path from typing import Any, Optional, Union -from pydantic import BaseModel, Field +from pydantic import BaseModel from weave.scorers.default_models import MODEL_PATHS from weave.trace.settings import scorers_dir -class WeaveScorerResult(BaseModel): - """The result of a weave.Scorer.score method.""" - - passed: bool = Field(description="Whether the scorer passed or not") - metadata: dict[str, Any] = Field( - description="Any extra information from the scorer like numerical scores, model outputs, etc." - ) - - def download_model(artifact_path: Union[str, Path]) -> Path: try: from wandb import Api diff --git a/weave/trace/serialize.py b/weave/trace/serialize.py index f54b6fc7af85..82ff3a3f4187 100644 --- a/weave/trace/serialize.py +++ b/weave/trace/serialize.py @@ -49,6 +49,15 @@ def to_json( if isinstance(obj, (int, float, str, bool)) or obj is None: return obj + # Add explicit handling for WeaveScorerResult models + from weave.flow.scorer import WeaveScorerResult + + if isinstance(obj, WeaveScorerResult): + return { + k: to_json(v, project_id, client, use_dictify) + for k, v in obj.model_dump().items() + } + # This still blocks potentially on large-file i/o. encoded = custom_objs.encode_custom_obj(obj) if encoded is None: From 96a44854f6e780e8657b5bcc36cdd2f9e4c4a6cf Mon Sep 17 00:00:00 2001 From: Griffin Tarpenning Date: Thu, 20 Feb 2025 12:03:41 -0800 Subject: [PATCH 14/27] chore(weave): show nested scorer output (#3718) --- .../pages/CallsPage/callsTableColumns.tsx | 141 ++++++++++++------ 1 file changed, 98 insertions(+), 43 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallsPage/callsTableColumns.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallsPage/callsTableColumns.tsx index 2f9eb55f8fe7..e85624a801db 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallsPage/callsTableColumns.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallsPage/callsTableColumns.tsx @@ -396,63 +396,118 @@ function buildCallsTableColumns( c.includes(RUNNABLE_FEEDBACK_OUTPUT_PART) ); if (scoreColNames.length > 0) { - // Add feedback group to grouping model + // Group scores by scorer name and nested paths + const scorerGroups = new Map>(); + scoreColNames.forEach(colName => { + const parsed = parseScorerFeedbackField(colName); + if (parsed) { + const scorerName = parsed.scorerName; + const pathParts = parsed.scorePath.replace(/^\./, '').split('.'); + // Only create a group path if there are multiple parts + const groupPath = + pathParts.length > 1 ? pathParts.slice(0, -1).join('.') : ''; + + if (!scorerGroups.has(scorerName)) { + scorerGroups.set(scorerName, new Map()); + } + const scorerGroup = scorerGroups.get(scorerName)!; + if (!scorerGroup.has(groupPath)) { + scorerGroup.set(groupPath, []); + } + scorerGroup.get(groupPath)!.push(colName); + } + }); + + // Create scorer groups in the grouping model for each scorer const scoreGroup = { groupId: 'scores', headerName: 'Scores', - children: [] as any[], + children: Array.from(scorerGroups.entries()).map( + ([scorerName, pathGroups]) => { + const scorerGroupChildren = Array.from(pathGroups.entries()) + .filter(([groupPath, _]) => groupPath !== '') // Filter out non-grouped fields + .map(([groupPath, _]) => ({ + groupId: `scores.${scorerName}.${groupPath}`, + headerName: groupPath, + children: [] as any[], + })); + + return { + groupId: `scores.${scorerName}`, + headerName: scorerName, + children: scorerGroupChildren, + }; + } + ), }; groupingModel.push(scoreGroup); - // Add feedback columns - const scoreColumns: Array> = scoreColNames.map( - c => { - const parsed = parseScorerFeedbackField(c); - const field = convertScorerFeedbackFieldToBackendFilter(c); - scoreGroup.children.push({ - field, - }); - if (parsed === null) { - return { + // Create columns for each scorer's fields + const scoreColumns: Array> = []; + scorerGroups.forEach((pathGroups, scorerName) => { + pathGroups.forEach((colNames, groupPath) => { + const scorerGroup = groupPath + ? scoreGroup.children + .find(g => g.groupId === `scores.${scorerName}`) + ?.children.find( + g => g.groupId === `scores.${scorerName}.${groupPath}` + ) + : scoreGroup.children.find(g => g.groupId === `scores.${scorerName}`); + + colNames.forEach(colName => { + const parsed = parseScorerFeedbackField(colName); + const field = convertScorerFeedbackFieldToBackendFilter(colName); + if (parsed === null) { + scoreColumns.push({ + field, + headerName: colName, + width: 150, + renderHeader: () => { + return
{colName}
; + }, + valueGetter: (unused: any, row: any) => { + return row[colName]; + }, + renderCell: (params: GridRenderCellParams) => { + return ; + }, + }); + return; + } + + // Add to scorer's group + scorerGroup?.children.push({field}); + + const leafName = + parsed.scorePath.split('.').pop()?.replace(/^\./, '') || + parsed.scorePath; + + scoreColumns.push({ field, - headerName: c, + headerName: `Scores.${parsed.scorerName}${parsed.scorePath}`, width: 150, renderHeader: () => { - return
{c}
; + return
{leafName}
; }, valueGetter: (unused: any, row: any) => { - return row[c]; + return row[colName]; }, renderCell: (params: GridRenderCellParams) => { - return ; + return ( + + + + ); }, - }; - } - return { - field, - headerName: 'Scores.' + parsed.scorerName + parsed.scorePath, - width: 150, - renderHeader: () => { - return
{parsed.scorerName + parsed.scorePath}
; - }, - valueGetter: (unused: any, row: any) => { - return row[c]; - }, - renderCell: (params: GridRenderCellParams) => { - return ( - - - - ); - }, - }; - } - ); + }); + }); + }); + }); cols.push(...scoreColumns); } From ab2261bc765a74d0c5c483ff3a2bc5a1777761a9 Mon Sep 17 00:00:00 2001 From: Ben Sherman Date: Thu, 20 Feb 2025 12:08:54 -0800 Subject: [PATCH 15/27] docs(weave): disable italics in code blocks (#3712) --- docs/src/css/custom.scss | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/docs/src/css/custom.scss b/docs/src/css/custom.scss index 2c487967b0ad..8b95f38b9227 100644 --- a/docs/src/css/custom.scss +++ b/docs/src/css/custom.scss @@ -137,3 +137,10 @@ h6 { font-size: 1rem !important; } white-space: nowrap; } } + +/* Prevent keyword italicization in dark mode code blocks */ +[data-theme='dark'] .token.keyword, +[data-theme='dark'] .token.operator, +[data-theme='dark'] .token.builtin { + font-style: normal !important; +} From e043df4884b1d388e5313d42fe8e9b21b75b94e2 Mon Sep 17 00:00:00 2001 From: Weave Build Bot Date: Thu, 20 Feb 2025 21:37:35 +0000 Subject: [PATCH 16/27] =?UTF-8?q?Release=20version:=200.51.34-dev0=20?= =?UTF-8?q?=E2=86=92=200.51.34?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- weave/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 56391f3bf2e4..2f4b9f21a734 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -237,7 +237,7 @@ module = "weave_query.*" ignore_errors = true [tool.bumpversion] -current_version = "0.51.34-dev0" +current_version = "0.51.34" parse = """(?x) (?P0|[1-9]\\d*)\\. (?P0|[1-9]\\d*)\\. diff --git a/weave/version.py b/weave/version.py index 2b6b2153a239..60940a59521b 100644 --- a/weave/version.py +++ b/weave/version.py @@ -44,4 +44,4 @@ """ -VERSION = "0.51.34-dev0" +VERSION = "0.51.34" From ecd458e1895886a84e51a0526f948028cb171aff Mon Sep 17 00:00:00 2001 From: Weave Build Bot Date: Thu, 20 Feb 2025 21:37:35 +0000 Subject: [PATCH 17/27] =?UTF-8?q?Release=20version:=200.51.34=20=E2=86=92?= =?UTF-8?q?=200.51.35-dev0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pyproject.toml | 2 +- weave/version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 2f4b9f21a734..12a56f04163b 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -237,7 +237,7 @@ module = "weave_query.*" ignore_errors = true [tool.bumpversion] -current_version = "0.51.34" +current_version = "0.51.35-dev0" parse = """(?x) (?P0|[1-9]\\d*)\\. (?P0|[1-9]\\d*)\\. diff --git a/weave/version.py b/weave/version.py index 60940a59521b..951ade411ef4 100644 --- a/weave/version.py +++ b/weave/version.py @@ -44,4 +44,4 @@ """ -VERSION = "0.51.34" +VERSION = "0.51.35-dev0" From 484a83409e00256a185614234e108ea5c3cd6974 Mon Sep 17 00:00:00 2001 From: Morgan McGuire Date: Thu, 20 Feb 2025 21:52:58 +0000 Subject: [PATCH 18/27] docs(weave): Add Local Weave scorers docs (#3698) --- docs/docs/guides/evaluation/scorers.md | 5 +- .../guides/evaluation/weave_local_scorers.md | 332 ++++++++++++++++++ docs/sidebars.ts | 6 +- 3 files changed, 340 insertions(+), 3 deletions(-) create mode 100644 docs/docs/guides/evaluation/weave_local_scorers.md diff --git a/docs/docs/guides/evaluation/scorers.md b/docs/docs/guides/evaluation/scorers.md index 62f4e8f55c44..330c7801f80f 100644 --- a/docs/docs/guides/evaluation/scorers.md +++ b/docs/docs/guides/evaluation/scorers.md @@ -23,11 +23,12 @@ In Weave, Scorers are used to evaluate AI outputs and return evaluation metrics. ## Create your own Scorers :::tip[Ready-to-Use Scorers] -While this guide shows you how to create custom scorers, Weave comes with a variety of [predefined scorers](./builtin_scorers.mdx) that you can use right away, including: +While this guide shows you how to create custom scorers, Weave comes with a variety of [predefined scorers](./builtin_scorers.mdx) and [local SLM scorers](./weave_local_scorers.md) that you can use right away, including: - [Hallucination detection](./builtin_scorers.mdx#hallucinationfreescorer) - [Summarization quality](./builtin_scorers.mdx#summarizationscorer) - [Embedding similarity](./builtin_scorers.mdx#embeddingsimilarityscorer) -- [Relevancy evaluation](./builtin_scorers.mdx#ragas---contextrelevancyscorer) +- [Toxicity detection (local)](./weave_local_scorers.md#weavetoxicityscorerv1) +- [Context Relevance scoring (local)](./weave_local_scorers.md#weavecontextrelevancescorerv1) - And more! ::: diff --git a/docs/docs/guides/evaluation/weave_local_scorers.md b/docs/docs/guides/evaluation/weave_local_scorers.md new file mode 100644 index 000000000000..c98ba4d330c2 --- /dev/null +++ b/docs/docs/guides/evaluation/weave_local_scorers.md @@ -0,0 +1,332 @@ +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +# Local Weave Scorers + + +Open In Colab + + +Weave's local scorers are a suite of small language models that run locally on your machine with minimal latency. These models evaluate the **safety** and **quality** of your AI system’s inputs, context, and outputs. + +Some of these models are fine-tuned by Weights & Biases, while others are state-of-the-art open-source models trained by the community. Weights & Biases (W&B) Reports were used for training and evaluation. You can find the full details in this [list of W&B Reports](https://wandb.ai/c-metrics/weave-scorers/reports/Weave-Scorers-v1--VmlldzoxMDQ0MDE1OA). + +The model weights are publicly available in W&B Artifacts and are automatically downloaded when you instantiate the scorer class. The artifact paths can be found here if you'd like to download them yourself: `weave.scorers.default_models` + +The object returned from calling these scorers contains a `passed` boolean attribute to indicate whether the input text is safe or high quality as well as a `metadata` atttribute that contains more detail such as the raw score from the model. + +:::tip +While local scorers can be run on CPUs and GPUs, use GPUs for best performance. +::: + + + + + ## Prerequisites + + Before you can use Weave local scorers, install additional dependencies: + + ```bash + pip install weave[scorers] + ``` + + ## Select a scorer + + The following local scorers are available. Select a scorer based on your use case. + + | Scorer | Scenario | + |----------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| + | [WeaveToxicityScorerV1](#weavetoxicityscorerv1) | Identify toxic or harmful content in your AI system's inputs and outputs, including hate speech or threats. | + | [WeaveBiasScorerV1](#weavebiasscorerv1) | Detect biased or stereotypical content in your AI system's inputs and outputs. Ideal for reducing harmful biases in generated text. | + | [WeaveHallucinationScorerV1](#weavehallucinationscorerv1) | Identify whether your RAG system generates hallucinations in its output based on the input and context provided. | + | [WeaveContextRelevanceScorerV1](#weavecontextrelevancescorerv1) | Measure whether the AI system's output is relevant to the input and context provided. | + | [WeaveCoherenceScorerV1](#weavecoherencescorerv1) | Evaluate the coherence and logical structure of the AI system's output. | + | [WeaveFluencyScorerV1](#weavefluencyscorerv1) | Measure whether the AI system's output is fluent. | + | [WeaveTrustScorerV1](#weavetrustscorerv1) | An aggregate scorer that leverages the toxicity, hallucination, context relevance, fluency, coherence scorers. | + | [PresidioScorer](#presidioscorer) | Detect Personally Identifiable Information (PII) in your AI system's inputs and outputs using the Presidio library from Microsoft. | + + + ## `WeaveBiasScorerV1` + + This scorer assesses gender and race/origin bias. The scorer assesses bias along two dimensions: + + - Race and Origin: Racism and bias against a country or region of origin, immigration status, ethnicity, etc. + - Gender and Sexuality: Sexism, misogyny, homophobia, transphobia, sexual harassment, etc. + + `WeaveBiasScorerV1` uses a fine-tuned [deberta-small-long-nli](https://huggingface.co/tasksource/deberta-small-long-nli) model. For more details on the model, dataset and calibration process, see the [WeaveBiasScorerV1 W&B Report](https://wandb.ai/c-metrics/bias-benchmark/reports/Bias-Scorer--VmlldzoxMDM2MTgzNw) + + ### Usage notes + + - The `score` method expects a string to be passed to the `output` parameter. + - A higher score means that there is a stronger prediction of bias in the text. + - The `threshold` parameter is set but can also be overridden on initialization. + + ### Usage example + + ```python + import weave + from weave.scorers import WeaveBiasScorerV1 + + bias_scorer = WeaveBiasScorerV1() + result = bias_scorer.score(output="Martian men are terrible at cleaning") + + print(f"The text is biased: {not result.passed}") + print(result) + ``` + + --- + + ## `WeaveToxicityScorerV1` + + The `WeaveToxicityScorerV1` scorer assesses the input text for toxicity along five dimensions: + + - Race and Origin: Racism and bias against a country or region of origin, immigration status, ethnicity, etc. + - Gender and Sexuality: Sexism, misogyny, homophobia, transphobia, sexual harassment, etc. + - Religious: Bias or stereotype against someone's religion. + - Ability: Bias according to someone's physical, mental, or intellectual ability or disability. + - Violence and Abuse: Overly graphic descriptions of violence, threats of violence, or incitement of violence. + + The `WeaveToxicityScorerV1` uses the open source [Celadon](https://huggingface.co/PleIAs/celadon) model from PleIAs. For more information, see the [WeaveToxicityScorerV1 W&B Report](https://wandb.ai/c-metrics/toxicity-benchmark/reports/Toxicity-Scorer--VmlldzoxMDMyNjc0NQ). + + ### Usage notes + + - The `score` method expects a string to be passed to the `output` parameter. + - The model returns scores from `0` to `3` across 5 different categories: + - If the sum of these scores is above `total_threshold` (default value `5`), then the input is flagged as toxic. + - If any single category has a score higher than `category_threshold` (default 2), then the input is flagged as toxic. Default values were fine-tuned to decrease false positives and improve recall. + - For more aggressive filtering, override the `category_threshold` parameter or the `total_threshold` parameter in the scorer constructor. + + ### Usage example + + ```python + import weave + from weave.scorers import WeaveToxicityScorerV1 + + toxicity_scorer = WeaveToxicityScorerV1() + result = toxicity_scorer.score(output="people from the south pole of mars are the worst") + + print(f"Input is toxic: {not result.passed}") + print(result) + ``` + + --- + + ## `WeaveHallucinationScorerV1` + + This scorer checks if your AI system's output contains any hallucinations based on the input data. + + The `WeaveHallucinationScorerV1` uses the open source [HHEM 2.1 model](https://huggingface.co/vectara/hallucination_evaluation_model) from Vectara. For more information, see the [WeaveHallucinationScorerV1 W&B Report](https://wandb.ai/c-metrics/hallucination/reports/Hallucination-Scorer--VmlldzoxMDM3NDA3MA). + + ### Usage notes + - The `score` method expects data to be passed to the `query` and `output` parameters. The context should be passed to the `output` parameter as a string or list of strings. + - A higher output score means that there is a stronger prediction of hallucination in the output given the query and context. + - The `threshold` parameter is set, but can also be overridden upon initialization. + + ### Usage example + + ```python + import weave + from weave.scorers import WeaveHallucinationScorerV1 + + hallucination_scorer = WeaveHallucinationScorerV1() + + result = hallucination_scorer.score( + query="What is the capital of Antartica?", + context="People in Antartica love the penguins.", + output="While Antartica is known for its sea life, penguins aren't liked there." + ) + + print(f"Output is hallucinated: {not result.passed}") + print(result) + ``` + + --- + + ## `WeaveContextRelevanceScorerV1` + + This scorer is designed to be used when evaluating RAG systems. It scores the relevance of the context to the query. + + The `WeaveContextRelevanceScorerV1` scorer uses a fine-tuned [deberta-small-long-nli](https://huggingface.co/tasksource/deberta-small-long-nli) model from tasksource. For more details, see the [WeaveContextRelevanceScorerV1 W&B Report](https://wandb.ai/c-metrics/context-relevance-scorer/reports/Context-Relevance-Scorer--VmlldzoxMDYxNjEyNA). + + ### Usage notes + + - The `score` method expects data to be passed to the `query` and `output` parameters. The context should be passed to the `output` parameter as a string or list of strings. + - A higher output score means that there is a stronger prediction of that the context is relevant to the query. + - The `threshold` parameter is automatically set, but can also be overridden on initialization. + - Passing `verbose = True` to the `score` method will return scores for each relevant chunk of text in the context. + + ### Usage example + + ```python + import weave + from weave.scorers import WeaveContextRelevanceScorerV1 + + context_relevance_scorer = WeaveContextRelevanceScorerV1() + + result = context_relevance_scorer.score( + query="What is the capital of Antarctica?", + output="The Antarctic has the happiest penguins." # the context is passed to the output parameter + ) + + print(f"Output is relevant: {result.passed}") + print(result) + ``` + + --- + + ## `WeaveCoherenceScorerV1` + + This scorer checks that the input text is coherent. + + The `WeaveCoherenceScorerV1` scorer uses a fine-tuned [deberta-small-long-nli](https://huggingface.co/tasksource/deberta-small-long-nli) model from tasksource. For more information, see the [WeaveCoherenceScorerV1 W&B Report](https://wandb.ai/c-metrics/coherence_scorer/reports/Coherence-Scorer--VmlldzoxMDI5MjA1MA). + + ### Usage notes + - The `score` method expects text to be passed to the `query` and `output` parameters. + - A higher output score means that there is a stronger prediction of coherence in the input text. + + ### Usage example + + ```python + import weave + from weave.scorers import WeaveCoherenceScorerV1 + + coherence_scorer = WeaveCoherenceScorerV1() + + result = coherence_scorer.score( + query="What is the capital of Antarctica?", + output="but why not monkey up day" + ) + + print(f"Output is coherent: {result.passed}") + print(result) + ``` + + --- + + ## `WeaveFluencyScorerV1` + + This scorer checks the input text is fluent; that is, easy to read and understand, similar to human language. The scorer assesses input along dimensions such as grammar, syntax, and overall readability. + + The `WeaveFluencyScorerV1` scorer uses a fine-tuned [ModernBERT-base](https://huggingface.co/answerdotai/ModernBERT-base) model from AnswerDotAI. For more information, see the [WeaveFluencyScorerV1 W&B Report](https://wandb.ai/c-metrics/fluency-eval/reports/Fluency-Scorer--VmlldzoxMTA3NzE2Ng). + + ### Usage notes + + - The `score` method expects text to be passed to the `output` parameter. + - A higher output score indicates higher input text fluency. + + ### Usage example + + ```python + import weave + from weave.scorers import WeaveFluencyScorerV1 + + fluency_scorer = WeaveFluencyScorerV1() + + result = fluency_scorer.score( + output="The cat did stretching lazily into warmth of sunlight." + ) + + print(f"Output is fluent: {result.passed}") + print(result) + ``` + + --- + + ## `WeaveTrustScorerV1` + + The `WeaveTrustScorerV1` is a composite scorer for RAG systems that evaluates the trustworthiness of model outputs by grouping the outputs of other scorers into two logical categories, Critical and Advisory. Based on the compostite score, `WeaveTrustScorerV1` returns a trust level score. The values for the trust level score are: + + - `high`: No issues detected + - `medium`: Only Advisory issues detected + - `low`: Critical issues detected or empty input + + Any input that does not pass a Critical scorer will automatically cause the `WeaveTrustScorerV1` to return `low`, while input that doesn't pass Advisory scorers will return `medium`. + + - Critical: + - `WeaveToxicityScorerV1`: Detects harmful, offensive, or inappropriate content + - `WeaveHallucinationScorerV1`: Identifies fabricated or unsupported information + - `WeaveContextRelevanceScorerV1`: Ensures output relevance to provided context + + - Advisory: + - `WeaveFluencyScorerV1`: Evaluates language quality and coherence + - `WeaveCoherenceScorerV1`: Checks for logical consistency and flow + + + + ### Usage notes + - The use case for this scorer is in evalutating RAG pipelines. + - `WeaveFluencyScorerV1` requires query, context and output keys to score correctly. + + ### Usage example + + ```python + import weave + from weave.scorers import WeaveTrustScorerV1 + + trust_scorer = WeaveTrustScorerV1() + + # A helper function to print the results of the trust scorer + def print_trust_scorer_result(result): + print() + print(f"Output is trustworthy: {result.passed}") + print(f"Trust level: {result.metadata['trust_level']}") + if not result.passed: + print("Triggered scorers:") + for scorer_name, scorer_data in result.metadata['raw_outputs'].items(): + if not scorer_data.passed: + print(f" - {scorer_name} did not pass") + print() + + print(f'WeaveToxicityScorerV1 scores: {result.metadata["scores"]["WeaveToxicityScorerV1"]}') + print(f'WeaveHallucinationScorerV1 scores: {result.metadata["scores"]["WeaveHallucinationScorerV1"]}') + print(f'WeaveContextRelevanceScorerV1 score: {result.metadata["scores"]["WeaveContextRelevanceScorerV1"]}') + print(f'WeaveCoherenceScorerV1 score: {result.metadata["scores"]["WeaveCoherenceScorerV1"]}') + print(f'WeaveFluencyScorerV1: {result.metadata["scores"]["WeaveFluencyScorerV1"]}') + print() + + # There are 2 issues with the input data: irrelevant context, hallucinated output + result = trust_scorer.score( + query="What is the capital of Antarctica?", + context="People in Antarctica love the penguins.", + output="The cat stretched lazily in the warm sunlight." + ) + + print_trust_scorer_result(result) + print(result) + ``` + + --- + + ## `PresidioScorer` + + This scorer uses the [Presidio library](https://github.com/microsoft/presidio) to detect Personally Identifiable Information (PII) in your AI system's inputs and outputs. + + ### Usage notes + + - To specify specific entity types, such as emails or phone numbers, pass a list of Presidio entities to the `selected_entities` parameter. Otherwise, Presidio will detect all entity types in its default entities list. + - Pass custom recognizers to the scorer as a list of type `presidio.EntityRecognizer` via the `custom_recognizers` parameter. + - To pass non-Englis input to the scorer, use the `language` parameter to specify the language of the text. + + ### Usage example + + ```python + import weave + from weave.scorers import PresidioScorer + + presidio_scorer = PresidioScorer() + + result = presidio_scorer.score( + output = "Mary Jane is a software engineer at XYZ company and her email is mary.jane@xyz.com." + ) + + print(f"Output contains PII: {not result.passed}") + print(result) + ``` + + + + Weave local scorers are not available in TypeScript yet. Stay tuned! + + To use Weave scorers in TypeScript, see [function-based scorers](scorers#function-based-scorers). + + diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 2a550864aa25..816ae2ca452a 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -88,7 +88,11 @@ const sidebars: SidebarsConfig = { collapsible: true, collapsed: false, label: "Scoring", - items: ["guides/evaluation/scorers", "guides/evaluation/builtin_scorers"], + items: [ + "guides/evaluation/scorers", + "guides/evaluation/builtin_scorers", + "guides/evaluation/weave_local_scorers" + ], } ], }, From b792d2da6837e06286911af86d6d5de0790aa8f5 Mon Sep 17 00:00:00 2001 From: J2-D2-3PO <188380414+J2-D2-3PO@users.noreply.github.com> Date: Thu, 20 Feb 2025 15:45:33 -0700 Subject: [PATCH 19/27] docs(weave): document PII redaction from traces feature in Python SDK (#3618) --- docs/docs/guides/tracking/redact-pii.md | 69 +++++++++++++++++++++++++ docs/sidebars.ts | 1 + 2 files changed, 70 insertions(+) create mode 100644 docs/docs/guides/tracking/redact-pii.md diff --git a/docs/docs/guides/tracking/redact-pii.md b/docs/docs/guides/tracking/redact-pii.md new file mode 100644 index 000000000000..dabdfeeb8ea8 --- /dev/null +++ b/docs/docs/guides/tracking/redact-pii.md @@ -0,0 +1,69 @@ +# Redact PII from Traces + +:::important +This feature is only available for Enterprise users, and is only accessible via the Python SDK. +::: + +Some organizations process Personally Identifiable Information (PII) such as names, phone numbers, and email addresses in their Large Language Model (LLM) workflows. Storing this data in Weights & Biases (W&B) Weave poses compliance and security risks. + +The _Sensitive Data Protection_ feature allows you to automatically redact Personally Identifiable Information (PII) from a [trace](../tracking/index.md) before it is sent to Weave servers. This feature integrates [Microsoft Presidio](https://microsoft.github.io/presidio/) into the Weave Python SDK, which means that you can control redaction settings at the SDK level. + +The Sensitive Data Protection feature introduces the following functionality to the Python SDK: + +- A `redact_pii` setting, which can be toggled on or off in the `weave.init` call to enable PII redaction. +- Automatic redaction of [common entities](#entities-redacted-by-default) when `redact_pii = True`. +- Customizable redaction fields using the configurable `redact_pii_fields` setting. + +## Enable PII redaction + +To get started with the Sensitive Data Protection feature in Weave, complete the following steps: + +1. Install the required dependencies: + + ```bash + pip install presidio-analyzer presidio-anonymizer + ``` + +2. Modify your `weave.init` call to enable redaction. When `redact_pii=True`, [common entities are redacted by default](#entities-redacted-by-default): + + ```python + import weave + + weave.init("my-project", settings={"redact_pii": True}) + ``` + +3. (Optional) Customize redaction fields using the `redact_pii_fields` parameter: + + ```python + weave.init("my-project", settings={"redact_pii": True, "redact_pii_fields"=["CREDIT_CARD", "US_SSN"]}) + ``` + + For a full list of the entities that can be detected and redacted, see [PII entities supported by Presidio](https://microsoft.github.io/presidio/supported_entities/). + +## Entities redacted by default + +The following entities are automatically redacted when PII redaction is enabled: + +- `CREDIT_CARD` +- `CRYPTO` +- `EMAIL_ADDRESS` +- `ES_NIF` +- `FI_PERSONAL_IDENTITY_CODE` +- `IBAN_CODE` +- `IN_AADHAAR` +- `IN_PAN` +- `IP_ADDRESS` +- `LOCATION` +- `PERSON` +- `PHONE_NUMBER` +- `UK_NHS` +- `UK_NINO` +- `US_BANK_NUMBER` +- `US_DRIVER_LICENSE` +- `US_PASSPORT` +- `US_SSN` + +## Usage information + +- This feature is only available in the Python SDK. +- Enabling redaction increases processing time due to the Presidio dependency. diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 816ae2ca452a..1636c556c81c 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -52,6 +52,7 @@ const sidebars: SidebarsConfig = { "guides/tracking/tracing", "guides/tracking/ops", "guides/tracking/objects", + "guides/tracking/redact-pii", "guides/tracking/faqs" ], }, From ee76328d5706ec536a62f6f9fa817fa5620fc150 Mon Sep 17 00:00:00 2001 From: Griffin Tarpenning Date: Thu, 20 Feb 2025 15:40:32 -0800 Subject: [PATCH 20/27] perf(weave): trace tree hide children when more than 100 (#3705) --- .../Browse3/pages/CallPage/CallTraceView.tsx | 91 +++++++++++++++---- .../CustomGridTreeDataGroupingCell.tsx | 4 +- 2 files changed, 77 insertions(+), 18 deletions(-) diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallTraceView.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallTraceView.tsx index 1bda948fe47a..5e3401114834 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallTraceView.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CallTraceView.tsx @@ -27,6 +27,8 @@ const CallTrace = styled.div` `; CallTrace.displayName = 'S.CallTrace'; +const MAX_CHILDREN_TO_SHOW = 100; + export const CallTraceView: FC<{ call: CallSchema; selectedCall: CallSchema; @@ -321,12 +323,18 @@ type CallRow = { isTraceRootCall: boolean; isParentRow?: boolean; }; -type CountRow = { +type SiblingCountRow = { id: 'HIDDEN_SIBLING_COUNT'; count: number; hierarchy: string[]; }; -type Row = CallRow | CountRow; +type HiddenChildrenCountRow = { + id: string; // _HIDDEN_CHILDREN_COUNT + count: number; + hierarchy: string[]; + parentId: string; +}; +type Row = CallRow | SiblingCountRow | HiddenChildrenCountRow; type CallMap = Record; type ChildCallLookup = Record; @@ -383,6 +391,7 @@ export const useCallFlattenedTraceTree = ( // Refetch the trace tree on delete or rename {refetchOnDelete: true} ); + const traceCallsResult = useMemo( () => traceCalls.result ?? [], [traceCalls.result] @@ -495,6 +504,24 @@ export const useCallFlattenedTraceTree = ( }); } + const updatePathSimilarity = (targetCall: CallSchema, path: string) => { + // Update the selected call if the new path is more similar + const idx = getIndexWithinSameNameSiblings( + targetCall, + traceCallMap, + childCallLookup + ); + const newPath = updatePath(path, targetCall.spanName, idx); + const similarity = scorePathSimilarity(newPath, selectedPath ?? ''); + if (similarity < selectedCallSimilarity) { + selectedCall = targetCall; + selectedCallSimilarity = similarity; + } + return newPath; + }; + + let hiddenChildrenCount = 0; + // Descend to the leaves const queue: Array<{ targetCall: CallSchema; @@ -510,17 +537,17 @@ export const useCallFlattenedTraceTree = ( while (queue.length > 0) { const {targetCall, parentHierarchy, path} = queue.shift()!; const newHierarchy = [...parentHierarchy, targetCall.callId]; - const idx = getIndexWithinSameNameSiblings( - targetCall, - traceCallMap, - childCallLookup - ); - const newPath = updatePath(path, targetCall.spanName, idx); - const similarity = scorePathSimilarity(newPath, selectedPath ?? ''); - if (similarity < selectedCallSimilarity) { - selectedCall = targetCall; - selectedCallSimilarity = similarity; + // Special handling for hidden children count row + if (targetCall.callId.endsWith('_HIDDEN_CHILDREN_COUNT')) { + rows.push({ + id: targetCall.callId, + count: hiddenChildrenCount, + hierarchy: newHierarchy, + parentId: targetCall.parentId ?? '', + }); + continue; } + const newPath = updatePathSimilarity(targetCall, path); rows.push({ id: targetCall.callId, call: targetCall, @@ -534,13 +561,43 @@ export const useCallFlattenedTraceTree = ( childIds.map(c => traceCallMap[c]).filter(c => c), [getCallSortExampleRow, getCallSortStartTime] ); - childCalls.forEach(c => + + if (childCalls.length > MAX_CHILDREN_TO_SHOW) { + const visibleChildren = childCalls.slice(0, MAX_CHILDREN_TO_SHOW); + const hiddenChildren = childCalls.slice(MAX_CHILDREN_TO_SHOW); + hiddenChildrenCount = hiddenChildren.length; + + // Check hidden children for better path matches + for (const hiddenChild of hiddenChildren) { + updatePathSimilarity(hiddenChild, newPath); + } + + // Add visible children to queue + visibleChildren.forEach(c => + queue.push({ + targetCall: c, + parentHierarchy: newHierarchy, + path: newPath, + }) + ); + // Push sentinel summary row so summary shows up in the right place (end) queue.push({ - targetCall: c, + targetCall: { + callId: `${targetCall.callId}_HIDDEN_CHILDREN_COUNT`, + } as CallSchema, // HACK for sentinel value parentHierarchy: newHierarchy, path: newPath, - }) - ); + }); + } else { + // Add all children to queue if under limit + childCalls.forEach(c => + queue.push({ + targetCall: c, + parentHierarchy: newHierarchy, + path: newPath, + }) + ); + } } if (parentCall) { @@ -587,7 +644,7 @@ export const useCallFlattenedTraceTree = ( selectedCall = mainCall; } - // Epand the path to the selected call. + // Expand the path to the selected call. const expandKeys = new Set(); let callToExpand: CallSchema | null = selectedCall; while (callToExpand != null) { diff --git a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CustomGridTreeDataGroupingCell.tsx b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CustomGridTreeDataGroupingCell.tsx index 594aaf2303da..5718cbeda9c9 100644 --- a/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CustomGridTreeDataGroupingCell.tsx +++ b/weave-js/src/components/PagePanelComponents/Home/Browse3/pages/CallPage/CustomGridTreeDataGroupingCell.tsx @@ -87,7 +87,9 @@ export const CustomGridTreeDataGroupingCell: FC< ) : null; - const isHiddenCount = id === 'HIDDEN_SIBLING_COUNT'; + const isHiddenChildCount = + typeof id === 'string' && id.endsWith('_HIDDEN_CHILDREN_COUNT'); + const isHiddenCount = id === 'HIDDEN_SIBLING_COUNT' || isHiddenChildCount; const box = ( Date: Thu, 20 Feb 2025 17:00:18 -0700 Subject: [PATCH 21/27] docs(weave): update Integration docs for Partner team marketing (#3662) --- docs/docs/guides/integrations/azure.md | 40 +++++++++++-------- docs/docs/guides/integrations/bedrock.md | 18 +++++++-- .../{google-gemini.md => google.md} | 15 +++---- docs/docs/guides/integrations/index.md | 2 +- docs/docs/guides/tools/playground.md | 11 +++-- docs/sidebars.ts | 2 +- 6 files changed, 52 insertions(+), 36 deletions(-) rename docs/docs/guides/integrations/{google-gemini.md => google.md} (85%) diff --git a/docs/docs/guides/integrations/azure.md b/docs/docs/guides/integrations/azure.md index 71ee7c2880b5..59af36e64923 100644 --- a/docs/docs/guides/integrations/azure.md +++ b/docs/docs/guides/integrations/azure.md @@ -1,30 +1,36 @@ # Microsoft Azure -Weights & Biases integrates with Microsoft Azure OpenAI services, helping teams to manage, debug, and optimize their Azure AI workflows at scale. This guide introduces the W&B integration, what it means for Weave users, its key features, and how to get started. +Weights & Biases (W&B) Weave integrates with Microsoft Azure OpenAI services, helping teams to optimize their Azure AI applications. Using W&B, you can :::tip For the latest tutorials, visit [Weights & Biases on Microsoft Azure](https://wandb.ai/site/partners/azure). ::: -## Key features - -- **LLM evaluations**: Evaluate and monitor LLM-powered applications using Weave, optimized for Azure infrastructure. -- **Seamless integration**: Deploy W&B Models on a dedicated Azure tenant with built-in integrations for Azure AI Studio, Azure ML, Azure OpenAI Service, and other Azure AI services. -- **Enhanced performance**: Use Azure’s infrastructure to train and deploy models faster, with auto-scaling clusters and optimized resources. -- **Scalable experiment tracking**: Automatically log hyperparameters, metrics, and artifacts for Azure AI Studio and Azure ML runs. -- **LLM fine-tuning**: Fine-tune models with W&B Models. -- **Central repository for models and datasets**: Manage and version models and datasets with W&B Registry and Azure AI Studio. -- **Collaborative workspaces**: Support teamwork with shared workspaces, experiment commenting, and Microsoft Teams integration. -- **Governance framework**: Ensure security with fine-grained access controls, audit trails, and Microsoft Entra ID integration. - ## Getting started -To use W&B with Azure, add the W&B integration via the [Azure Marketplace](https://azuremarketplace.microsoft.com/en-us/marketplace/apps/weightsandbiasesinc1641502883483.weights_biases_for_azure?tab=Overview). +To get started using Azure with Weave, simply decorate the function(s) you want to track with `weave.op`. -For a detailed guide describing how to integrate Azure OpenAI fine-tuning with W&B, see [Integrating Weights & Biases with Azure AI Services](https://learn.microsoft.com/en-us/azure/ai-services/openai/how-to/weights-and-biases-integration). +```python +@weave.op() +def call_azure_chat(model_id: str, messages: list, max_tokens: int = 1000, temperature: float = 0.5): + response = client.chat.completions.create( + model=model_id, + messages=messages, + max_tokens=max_tokens, + temperature=temperature + ) + return {"status": "success", "response": response.choices[0].message.content} + +``` ## Learn more -- [Weights & Biases + Microsoft Azure Overview](https://wandb.ai/site/partners/azure) -- [How W&B and Microsoft Azure Are Empowering Enterprises](https://techcommunity.microsoft.com/blog/azure-ai-services-blog/how-weights--biases-and-microsoft-azure-are-empowering-enterprises-to-fine-tune-/4303716) -- [Microsoft Azure OpenAI Service Documentation](https://learn.microsoft.com/en-us/azure/ai-services/openai/) +Learn more about advanced Azure with Weave topics using the resources below. + +### Use the Azure AI Model Inference API with Weave + +Learn how to use the [Azure AI Model Inference API] with Weave to gain insights into Azure models in [this guide](https://wandb.ai/byyoung3/ML-NEWS2/reports/A-guide-to-using-the-Azure-AI-model-inference-API--Vmlldzo4OTY1MjEy#tutorial:-implementing-azure-ai-model-inference-api-with-w&b-weave-). + +### Trace Azure OpenAI models with Weave + +Learn how to trace Azure OpenAI models using Weave in [this guide](https://wandb.ai/a-sh0ts/azure-weave-cookbook/reports/How-to-use-Azure-OpenAI-and-Azure-AI-Studio-with-W-B-Weave--Vmlldzo4MTI0NDgy). diff --git a/docs/docs/guides/integrations/bedrock.md b/docs/docs/guides/integrations/bedrock.md index 72375b2ef700..8e927f48ab71 100644 --- a/docs/docs/guides/integrations/bedrock.md +++ b/docs/docs/guides/integrations/bedrock.md @@ -2,14 +2,12 @@ Weave automatically tracks and logs LLM calls made via Amazon Bedrock, AWS's fully managed service that offers foundation models from leading AI companies through a unified API. +There are multiple ways to log LLM calls to Weave from Amazon Bedrock. You can use `weave.op` to create reusable operations for tracking any calls to a Bedrock model. Optionally, if you're using Anthropic models, you can use Weave’s built-in integration with Anthropic. + :::tip For the latest tutorials, visit [Weights & Biases on Amazon Web Services](https://wandb.ai/site/partners/aws/). ::: -:::note -Do you want to experiment with Amazon Bedrock models on Weave without any set up? Try the [LLM Playground](../tools/playground.md). -::: - ## Traces Weave will automatically capture traces for Bedrock API calls. You can use the Bedrock client as usual after initializing Weave and patching the client: @@ -143,3 +141,15 @@ print(result) ``` This approach allows you to version your experiments and easily track different configurations of your Bedrock-based application. + +## Learn more + +Learn more about using Amazon Bedrock with Weave + +### Try Bedrock in the Weave Playground + +Do you want to experiment with Amazon Bedrock models in the Weave UI without any set up? Try the [LLM Playground](../tools/playground.md). + +### Report: Compare LLMs on Bedrock for text summarization with Weave + +The [Compare LLMs on Bedrock for text summarization with Weave](https://wandb.ai/byyoung3/ML_NEWS3/reports/Compare-LLMs-on-Amazon-Bedrock-for-text-summarization-with-W-B-Weave--VmlldzoxMDI1MTIzNw) report explains how to use Bedrock in combination with Weave to evaluate and compare LLMs for summarization tasks, code samples included. \ No newline at end of file diff --git a/docs/docs/guides/integrations/google-gemini.md b/docs/docs/guides/integrations/google.md similarity index 85% rename from docs/docs/guides/integrations/google-gemini.md rename to docs/docs/guides/integrations/google.md index b541670315c6..ea63de522f02 100644 --- a/docs/docs/guides/integrations/google-gemini.md +++ b/docs/docs/guides/integrations/google.md @@ -1,21 +1,21 @@ -# Google Gemini +# Google :::tip For the latest tutorials, visit [Weights & Biases on Google Cloud](https://wandb.ai/site/partners/googlecloud/). ::: :::note -Do you want to experiment with Google Gemini models on Weave without any set up? Try the [LLM Playground](../tools/playground.md). +Do you want to experiment with Google AI models on Weave without any set up? Try the [LLM Playground](../tools/playground.md). ::: -Google offers two ways of calling Gemini via API: +This page describes how to use W&B Weave with the Google Vertex AI API and the Google Gemini API. -1. Via the [Vertex APIs](https://cloud.google.com/vertex-ai/docs). -2. Via the [Gemini API SDK](https://ai.google.dev/gemini-api/docs/quickstart?lang=python). +You can use Weave to evaluate, monitor, and iterate on your Google GenAI applications. Weave automatically captures traces for the: -## Tracing +1. [Google Vertex AI API](https://cloud.google.com/vertex-ai/docs), which provides access to Google’s Gemini models and [various partner models](https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-partner-models). +2. [Google Gemini API](https://ai.google.dev/gemini-api/docs/quickstart?lang=python), which is accessible via Python SDK, Node.js SDK, Go SDK, and REST. -It’s important to store traces of language model applications in a central location, both during development and in production. These traces can be useful for debugging, and as a dataset that will help you improve your application. +## Get started Weave will automatically capture traces for [Gemini API SDK](https://ai.google.dev/gemini-api/docs/quickstart?lang=python). To start tracking, calling `weave.init(project_name="")` and use the library as normal. @@ -120,3 +120,4 @@ Given a weave reference to any `weave.Model` object, you can spin up a fastapi s ```shell weave serve weave:///your_entity/project-name/YourModel: ``` + diff --git a/docs/docs/guides/integrations/index.md b/docs/docs/guides/integrations/index.md index b11344de5aed..6186959dca1e 100644 --- a/docs/docs/guides/integrations/index.md +++ b/docs/docs/guides/integrations/index.md @@ -14,7 +14,7 @@ LLM providers are the vendors that offer access to large language models for gen - **[Anthropic](/guides/integrations/anthropic)** - **[Cerebras](/guides/integrations/cerebras)** - **[Cohere](/guides/integrations/cohere)** -- **[Google Gemini](/guides/integrations/google-gemini)** +- **[Google](/guides/integrations/google)** - **[Groq](/guides/integrations/groq)** - **[Hugging Face Hub](/guides/integrations/huggingface)** - **[LiteLLM](/guides/integrations/litellm)** diff --git a/docs/docs/guides/tools/playground.md b/docs/docs/guides/tools/playground.md index 904ddac53eb4..3d06bec03d18 100644 --- a/docs/docs/guides/tools/playground.md +++ b/docs/docs/guides/tools/playground.md @@ -2,7 +2,7 @@ > **The LLM Playground is currently in preview.** -Evaluating LLM prompts and responses is challenging. The Weave Playground is designed to simplify the process of iterating on LLM prompts and responses, making it easier to experiment with different models and prompts. With features like prompt editing, message retrying, and model comparison, Playground helps you to quickly test and improve your LLM applications. Playground currently supports OpenAI, Anthropic, Google Gemini, Groq, and Amazon Bedrock models. +Evaluating LLM prompts and responses is challenging. The Weave Playground is designed to simplify the process of iterating on LLM prompts and responses, making it easier to experiment with different models and prompts. With features like prompt editing, message retrying, and model comparison, Playground helps you to quickly test and improve your LLM applications. Playground currently supports models from OpenAI, Anthropic, Google, Groq, Amazon Bedrock, and Microsoft Azure. ## Features @@ -32,12 +32,11 @@ Before you can use Playground, you must [add provider credentials](#add-provider ### Add provider credentials and information -Playground currently supports OpenAI, Anthropic, Gemini, Groq, Amazon Bedrock, and Azure models. -To use one of the available models, add the appropriate information to your team secrets in W&B settings. +Playground currently supports models from OpenAI, Anthropic, Google, Groq, Amazon Bedrock, and Microsoft Azure. To use one of the available models, add the appropriate information to your team secrets in W&B settings. - OpenAI: `OPENAI_API_KEY` - Anthropic: `ANTHROPIC_API_KEY` -- Google Gemini: `GOOGLE_API_KEY` +- Google: `GOOGLE_API_KEY` - Groq: `GEMMA_API_KEY` - Amazon Bedrock: - `AWS_ACCESS_KEY_ID` @@ -67,7 +66,7 @@ You can switch the LLM using the dropdown menu in the top left. The available mo - [Amazon Bedrock](#amazon-bedrock) - [Anthropic](#anthropic) - [Azure](#azure) -- [Google Gemini](#gemini) +- [Google](#google) - [Groq](#groq) - [OpenAI](#openai) - [X.AI](#xai) @@ -126,7 +125,7 @@ You can switch the LLM using the dropdown menu in the top left. The available mo - azure/gpt-4o-mini - azure/gpt-4o-mini-2024-07-18 -### [Google Gemini](../integrations/google-gemini.md) +### [Google](../integrations/google.md) - gemini/gemini-1.5-flash-001 - gemini/gemini-1.5-flash-002 diff --git a/docs/sidebars.ts b/docs/sidebars.ts index 1636c556c81c..848fcbe6622e 100644 --- a/docs/sidebars.ts +++ b/docs/sidebars.ts @@ -132,7 +132,7 @@ const sidebars: SidebarsConfig = { "guides/integrations/anthropic", "guides/integrations/cerebras", "guides/integrations/cohere", - "guides/integrations/google-gemini", + "guides/integrations/google", "guides/integrations/groq", "guides/integrations/huggingface", "guides/integrations/litellm", From 5d997c4f8e081571cff1026b453086158387955b Mon Sep 17 00:00:00 2001 From: Danny Goldstein Date: Thu, 20 Feb 2025 19:05:29 -0500 Subject: [PATCH 22/27] feat(ui): Add delayBeforeShow and instant appearance to WaveLoader via CSSTransition (#3725) * add delayBeforeShow to loader * fix it and add docs * simplify --- .../src/common/components/WandbLoader.tsx | 4 +++- weave-js/src/common/util/hooks.ts | 11 +++++++++ .../src/components/Loaders/WaveLoader.tsx | 23 +++++++++++++++++-- 3 files changed, 35 insertions(+), 3 deletions(-) diff --git a/weave-js/src/common/components/WandbLoader.tsx b/weave-js/src/common/components/WandbLoader.tsx index 4bb16ebf2e2a..b10aff610794 100644 --- a/weave-js/src/common/components/WandbLoader.tsx +++ b/weave-js/src/common/components/WandbLoader.tsx @@ -113,8 +113,10 @@ export const TrackedWaveLoader = ({ onComplete, onStart, size, + delayBeforeShow = 0, }: TrackedWandbLoaderProps & { size: 'small' | 'huge'; + delayBeforeShow?: number; }) => { useLifecycleProfiling( name, @@ -141,5 +143,5 @@ export const TrackedWaveLoader = ({ onStart ); - return ; + return ; }; diff --git a/weave-js/src/common/util/hooks.ts b/weave-js/src/common/util/hooks.ts index ef8dfabc023c..185ef6b569cf 100644 --- a/weave-js/src/common/util/hooks.ts +++ b/weave-js/src/common/util/hooks.ts @@ -271,3 +271,14 @@ export function useIsMounted() { }, []); return useCallback(() => isMountedRef.current, []); } + +export function useTimeout(ms: number) { + const [isReady, setIsReady] = useState(false); + useEffect(() => { + const timeout = setTimeout(() => { + setIsReady(true); + }, ms); + return () => clearTimeout(timeout); + }, [ms]); + return isReady; +} diff --git a/weave-js/src/components/Loaders/WaveLoader.tsx b/weave-js/src/components/Loaders/WaveLoader.tsx index 7bd8dbd6e373..0f2ec84bc015 100644 --- a/weave-js/src/components/Loaders/WaveLoader.tsx +++ b/weave-js/src/components/Loaders/WaveLoader.tsx @@ -1,3 +1,4 @@ +import {useTimeout} from '@wandb/weave/common/util/hooks'; import {TailwindContents} from '@wandb/weave/components/Tailwind'; import classNames from 'classnames'; import React, {useMemo} from 'react'; @@ -22,11 +23,29 @@ const Dot = React.memo( } ); -export const WaveLoader = ({size}: {size: 'small' | 'huge'}) => { +/** + * WaveLoader displays a row of Dot elements after an optional delay, + * instantly switching from completely hidden to visible. + * + * @param {Object} props + * @param {'small' | 'huge'} props.size - The size variant for each Dot. + * @param {number} [props.delayBeforeShow] - Time in ms to wait before showing the dots. + */ +export const WaveLoader = ({ + size, + delayBeforeShow, +}: { + size: 'small' | 'huge'; + delayBeforeShow?: number; +}) => { + const isReady = useTimeout(delayBeforeShow ?? 0); return (
From c44dacc352cc3e6687299964c2f88efb3053ab6a Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Fri, 21 Feb 2025 09:28:04 -0500 Subject: [PATCH 23/27] chore(weave): Move pypi version check #3729 --- weave/trace/init_message.py | 2 +- weave/{trace => utils}/pypi_version_check.py | 0 2 files changed, 1 insertion(+), 1 deletion(-) rename weave/{trace => utils}/pypi_version_check.py (100%) diff --git a/weave/trace/init_message.py b/weave/trace/init_message.py index 926cca5cc533..f9abb460011c 100644 --- a/weave/trace/init_message.py +++ b/weave/trace/init_message.py @@ -3,7 +3,7 @@ from typing import TYPE_CHECKING from weave.trace import urls -from weave.trace.pypi_version_check import check_available +from weave.utils.pypi_version_check import check_available if TYPE_CHECKING: import packaging.version # type: ignore[import-not-found] diff --git a/weave/trace/pypi_version_check.py b/weave/utils/pypi_version_check.py similarity index 100% rename from weave/trace/pypi_version_check.py rename to weave/utils/pypi_version_check.py From 97c46830502993a22e78a59f442588cea6245a25 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Fri, 21 Feb 2025 09:28:12 -0500 Subject: [PATCH 24/27] chore(weave): Remove unnecessary object prep code #3728 --- weave/trace/object_preparers.py | 33 ------------------------------ weave/trace/vals.py | 2 -- weave/type_handlers/Image/image.py | 20 +----------------- 3 files changed, 1 insertion(+), 54 deletions(-) delete mode 100644 weave/trace/object_preparers.py diff --git a/weave/trace/object_preparers.py b/weave/trace/object_preparers.py deleted file mode 100644 index 0785c8d8101c..000000000000 --- a/weave/trace/object_preparers.py +++ /dev/null @@ -1,33 +0,0 @@ -from __future__ import annotations - -from typing import Any, Protocol - - -class ObjectPreparer(Protocol): - """An initializer to ensure saved Weave objects are safe to load back to their original types. - - In many cases, this will be some form of deepcopy to ensure all the data is loaded - into memory before attempting to return the object. - """ - - def should_prepare(self, obj: Any) -> bool: ... - def prepare(self, obj: Any) -> None: ... - - -_object_preparers: list[ObjectPreparer] = [] - - -def register(preparer: ObjectPreparer) -> None: - _object_preparers.append(preparer) - - -def maybe_get_preparer(obj: Any) -> ObjectPreparer | None: - for initializer in _object_preparers: - if initializer.should_prepare(obj): - return initializer - return None - - -def prepare_obj(obj: Any) -> None: - if preparer := maybe_get_preparer(obj): - preparer.prepare(obj) diff --git a/weave/trace/vals.py b/weave/trace/vals.py index 0a38cbe5a2f9..6bf21834be2d 100644 --- a/weave/trace/vals.py +++ b/weave/trace/vals.py @@ -14,7 +14,6 @@ from weave.trace.context.tests_context import get_raise_on_captured_errors from weave.trace.context.weave_client_context import get_weave_client from weave.trace.errors import InternalError -from weave.trace.object_preparers import prepare_obj from weave.trace.object_record import ObjectRecord from weave.trace.op import is_op, maybe_bind_method from weave.trace.refs import ( @@ -648,7 +647,6 @@ def make_trace_obj( ) ) val = from_json(read_res.obj.val, project_id, server) - prepare_obj(val) except ObjectDeletedError as e: # encountered a deleted object, return DeletedRef, warn and continue val = DeletedRef(ref=new_ref, deleted_at=e.deleted_at, error=e) diff --git a/weave/type_handlers/Image/image.py b/weave/type_handlers/Image/image.py index 5080d623d414..6e414d79044b 100644 --- a/weave/type_handlers/Image/image.py +++ b/weave/type_handlers/Image/image.py @@ -3,9 +3,8 @@ from __future__ import annotations import logging -from typing import Any -from weave.trace import object_preparers, serializer +from weave.trace import serializer from weave.trace.custom_objs import MemTraceFilesArtifact from weave.utils.invertable_dict import InvertableDict @@ -29,22 +28,6 @@ ext_to_pil_format = pil_format_to_ext.inv -class PILImagePreparer: - def should_prepare(self, obj: Any) -> bool: - return isinstance(obj, Image.Image) - - def prepare(self, obj: Image.Image) -> None: - try: - # This load is necessary to ensure that the image is fully loaded into memory. - # If we don't do this, it's possible that only part of the data is loaded - # before the object is returned. This can happen when trying to run an evaluation - # on a ref-get'd dataset with image columns. - obj.load() - except Exception as e: - logger.exception(f"Failed to load PIL Image: {e}") - raise - - def save(obj: Image.Image, artifact: MemTraceFilesArtifact, name: str) -> None: fmt = getattr(obj, "format", DEFAULT_FORMAT) ext = pil_format_to_ext.get(fmt) @@ -84,4 +67,3 @@ def load(artifact: MemTraceFilesArtifact, name: str) -> Image.Image: def register() -> None: if dependencies_met: serializer.register_serializer(Image.Image, save, load) - object_preparers.register(PILImagePreparer()) From fdc60fff22073b541cd4ec541aa6d8ef2b774a82 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Fri, 21 Feb 2025 09:37:23 -0500 Subject: [PATCH 25/27] chore(weave): Cleanup optype #3731 --- weave/trace/op_type.py | 47 +++++++++++++----------------------------- 1 file changed, 14 insertions(+), 33 deletions(-) diff --git a/weave/trace/op_type.py b/weave/trace/op_type.py index b0f6f3fce051..089d849224c1 100644 --- a/weave/trace/op_type.py +++ b/weave/trace/op_type.py @@ -1,7 +1,7 @@ +from __future__ import annotations + import ast import builtins -import collections -import collections.abc import inspect import io import json @@ -10,9 +10,8 @@ import sys import textwrap import types as py_types -import typing from _ast import AsyncFunctionDef, ExceptHandler -from typing import Any, Callable, Optional, Union, get_args, get_origin +from typing import Any, Callable, TypedDict, get_args, get_origin from weave.trace import serializer, settings from weave.trace.context.weave_client_context import get_weave_client @@ -33,24 +32,6 @@ CODE_DEP_ERROR_SENTINEL = "" -def type_code(type_: Any) -> str: - if isinstance(type_, py_types.GenericAlias) or isinstance( - type_, - typing._GenericAlias, # type: ignore - ): - args = ", ".join(type_code(t) for t in type_.__args__) - if type_.__origin__ == list or type_.__origin__ == collections.abc.Sequence: - return f"list[{args}]" - elif type_.__origin__ == dict: - return f"dict[{args}]" - elif type_.__origin__ == typing.Union: - return f"typing.Union[{args}]" - else: - return f"{type_.__origin__}[{args}]" - else: - return type_.__name__ - - def arg_names(args: ast.arguments) -> set[str]: arg_names = set() for arg in args.args: @@ -156,7 +137,7 @@ def visit_Name(self, node: ast.Name) -> None: self.external_vars[node.id] = True -def resolve_var(fn: typing.Callable, var_name: str) -> Any: +def resolve_var(fn: Callable, var_name: str) -> Any: """Given a python function, resolve a non-local variable name.""" # First to see if the variable is in the closure if fn.__closure__: @@ -188,13 +169,13 @@ def default(self, o: Any) -> Any: return json.JSONEncoder.default(self, o) -class GetCodeDepsResult(typing.TypedDict): +class GetCodeDepsResult(TypedDict): import_code: list[str] code: list[str] warnings: list[str] -def get_source_notebook_safe(fn: typing.Callable) -> str: +def get_source_notebook_safe(fn: Callable) -> str: # In ipython, we can't use inspect.getsource on classes defined in the notebook if is_running_interactively() and inspect.isclass(fn): try: @@ -208,7 +189,7 @@ def get_source_notebook_safe(fn: typing.Callable) -> str: return textwrap.dedent(src) -def reconstruct_signature(fn: typing.Callable) -> str: +def reconstruct_signature(fn: Callable) -> str: sig = inspect.signature(fn) module = sys.modules[fn.__module__] @@ -261,7 +242,7 @@ def quote_default_str(default: Any) -> Any: return sig_str -def get_source_or_fallback(fn: typing.Callable, *, warnings: list[str]) -> str: +def get_source_or_fallback(fn: Callable, *, warnings: list[str]) -> str: if is_op(fn): fn = as_op(fn) fn = fn.resolve_fn @@ -299,7 +280,7 @@ def {func_name}{sig_str}: def get_code_deps_safe( - fn: Union[typing.Callable, type], # A function or a class + fn: Callable | type, # A function or a class artifact: MemTraceFilesArtifact, depth: int = 0, ) -> GetCodeDepsResult: @@ -338,9 +319,9 @@ def get_code_deps_safe( def _get_code_deps( - fn: Union[typing.Callable, type], # A function or a class + fn: Callable | type, # A function or a class artifact: MemTraceFilesArtifact, - seen: dict[Union[Callable, type], bool], + seen: dict[Callable | type, bool], depth: int = 0, ) -> GetCodeDepsResult: warnings: list[str] = [] @@ -473,7 +454,7 @@ def _get_code_deps( def find_last_weave_op_function( source_code: str, -) -> Union[ast.FunctionDef, ast.AsyncFunctionDef, None]: +) -> ast.FunctionDef | ast.AsyncFunctionDef | None: """Given a string of python source code, find the last function that is decorated with 'weave.op'.""" tree = ast.parse(source_code) @@ -510,7 +491,7 @@ def dedupe_list(original_list: list[str]) -> list[str]: return deduped -def save_instance(obj: "Op", artifact: MemTraceFilesArtifact, name: str) -> None: +def save_instance(obj: Op, artifact: MemTraceFilesArtifact, name: str) -> None: result = get_code_deps_safe(obj.resolve_fn, artifact) import_code = result["import_code"] code = result["code"] @@ -549,7 +530,7 @@ def save_instance(obj: "Op", artifact: MemTraceFilesArtifact, name: str) -> None def load_instance( artifact: MemTraceFilesArtifact, name: str, -) -> Optional["Op"]: +) -> Op | None: file_name = f"{name}.py" module_path = artifact.path(file_name) From 3db2c182abb8ba99f519ab55a3d760fddc7b4306 Mon Sep 17 00:00:00 2001 From: Andrew Truong Date: Fri, 21 Feb 2025 09:59:19 -0500 Subject: [PATCH 26/27] chore(weave): Move patcher (#3730) --- tests/{trace => integrations}/test_patcher.py | 2 +- .../integrations/test_patching_resilience.py | 45 +++++++++++++++++++ tests/trace/test_tracing_resilience.py | 36 --------------- weave/integrations/README.md | 4 +- weave/integrations/anthropic/anthropic_sdk.py | 2 +- weave/integrations/cerebras/cerebras_sdk.py | 2 +- weave/integrations/cohere/cohere_sdk.py | 2 +- weave/integrations/dspy/dspy_sdk.py | 2 +- .../google_ai_studio/google_ai_studio_sdk.py | 2 +- weave/integrations/groq/groq_sdk.py | 2 +- .../huggingface_inference_client_sdk.py | 2 +- .../integrations/instructor/instructor_sdk.py | 2 +- weave/integrations/langchain/langchain.py | 2 +- .../langchain_nv_ai_endpoints.py | 2 +- weave/integrations/litellm/litellm.py | 2 +- weave/integrations/llamaindex/llamaindex.py | 2 +- weave/integrations/mistral/v0/mistral.py | 2 +- weave/integrations/mistral/v1/mistral.py | 2 +- weave/integrations/notdiamond/tracing.py | 2 +- weave/integrations/openai/openai_sdk.py | 2 +- weave/{trace => integrations}/patcher.py | 0 weave/integrations/vertexai/vertexai_sdk.py | 2 +- 22 files changed, 65 insertions(+), 56 deletions(-) rename tests/{trace => integrations}/test_patcher.py (97%) create mode 100644 tests/integrations/test_patching_resilience.py rename weave/{trace => integrations}/patcher.py (100%) diff --git a/tests/trace/test_patcher.py b/tests/integrations/test_patcher.py similarity index 97% rename from tests/trace/test_patcher.py rename to tests/integrations/test_patcher.py index dec04d0d971b..88c66751c839 100644 --- a/tests/trace/test_patcher.py +++ b/tests/integrations/test_patcher.py @@ -2,7 +2,7 @@ import pytest -from weave.trace.patcher import SymbolPatcher +from weave.integrations.patcher import SymbolPatcher def test_symbol_patcher(): diff --git a/tests/integrations/test_patching_resilience.py b/tests/integrations/test_patching_resilience.py new file mode 100644 index 000000000000..bbe711ecac89 --- /dev/null +++ b/tests/integrations/test_patching_resilience.py @@ -0,0 +1,45 @@ +from typing import Callable + +import pytest + +from tests.trace.util import DummyTestException +from weave.integrations.patcher import MultiPatcher, SymbolPatcher +from weave.trace.context import call_context + + +def assert_no_current_call(): + assert call_context.get_current_call() is None + + +@pytest.mark.disable_logging_error_check +def test_resilience_to_patcher_errors(client, log_collector): + class Module: + def method(self): + return 0 + + def custom_patcher(m: Callable): + raise DummyTestException("FAILURE!") + + def do_test(): + test_patcher = MultiPatcher( + [ + SymbolPatcher( + lambda: Module, + "method", + custom_patcher, + ) + ] + ) + + test_patcher.attempt_patch() + + return Module().method() + + res = do_test() + assert res == 0 + + assert_no_current_call() + + logs = log_collector.get_error_logs() + assert len(logs) == 1 + assert logs[0].msg.startswith("Failed to patch") diff --git a/tests/trace/test_tracing_resilience.py b/tests/trace/test_tracing_resilience.py index 9a72e1842cef..cd0b6eaa832d 100644 --- a/tests/trace/test_tracing_resilience.py +++ b/tests/trace/test_tracing_resilience.py @@ -7,7 +7,6 @@ # TODO: Test code capture resilience # TODO: Test postprocess input/output resilience from collections import Counter -from typing import Callable import pytest @@ -16,7 +15,6 @@ from weave.trace.context import call_context from weave.trace.context.tests_context import raise_on_captured_errors from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, SymbolPatcher def assert_no_current_call(): @@ -74,40 +72,6 @@ def simple_op(): } -@pytest.mark.disable_logging_error_check -def test_resilience_to_patcher_errors(client, log_collector): - class Module: - def method(self): - return 0 - - def custom_patcher(m: Callable): - raise DummyTestException("FAILURE!") - - def do_test(): - test_patcher = MultiPatcher( - [ - SymbolPatcher( - lambda: Module, - "method", - custom_patcher, - ) - ] - ) - - test_patcher.attempt_patch() - - return Module().method() - - res = do_test() - assert res == 0 - - assert_no_current_call() - - logs = log_collector.get_error_logs() - assert len(logs) == 1 - assert logs[0].msg.startswith("Failed to patch") - - @pytest.mark.disable_logging_error_check def test_resilience_to_output_handler_errors(client, log_collector): def do_test(): diff --git a/weave/integrations/README.md b/weave/integrations/README.md index a1429d8a5d35..1b058e661783 100644 --- a/weave/integrations/README.md +++ b/weave/integrations/README.md @@ -75,13 +75,13 @@ This directory contains various integrations for Weave. As of this writing, ther 4. At this point, you should be able to run the unit test and see a failure at the `assert len(res.calls) == 1` line. If you see any different errors, fix them before moving forward. Note, to run the test, you will likely need a vendor key, for example: `MISTRAL_API_KEY=... pytest --record-mode=rewrite trace/integrations/mistral/mistral_test.py::test_mistral_quickstart`. Note: the `--record-mode=rewrite` tells the system to ignore any recorded network calls. 5. Now - time to implement the integration! -6. Inside of `.py`, implement the integration. The most basic form will look like this. Of course, you might need to do a lot here if there is sufficient complexity required. The key idea is to have a symbol called `_patcher` exported at the end which is a subclass of `weave.trace.patcher.Patcher`. _Note: this assumes non-generator return libraries. More work is required for those to work well._ +6. Inside of `.py`, implement the integration. The most basic form will look like this. Of course, you might need to do a lot here if there is sufficient complexity required. The key idea is to have a symbol called `_patcher` exported at the end which is a subclass of `weave.integrations.patcher.Patcher`. _Note: this assumes non-generator return libraries. More work is required for those to work well._ ``` import importlib import weave - from weave.trace.patcher import SymbolPatcher, MultiPatcher + from weave.integrations.patcher import SymbolPatcher, MultiPatcher _patcher = MultiPatcher( # _patcher.attempt_patch() will attempt to patch all patchers diff --git a/weave/integrations/anthropic/anthropic_sdk.py b/weave/integrations/anthropic/anthropic_sdk.py index 9cd06f532594..150675a5c781 100644 --- a/weave/integrations/anthropic/anthropic_sdk.py +++ b/weave/integrations/anthropic/anthropic_sdk.py @@ -6,9 +6,9 @@ from typing import TYPE_CHECKING, Any, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import _IteratorWrapper, add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from anthropic.lib.streaming import MessageStream diff --git a/weave/integrations/cerebras/cerebras_sdk.py b/weave/integrations/cerebras/cerebras_sdk.py index a2096a184e79..3520c43be61e 100644 --- a/weave/integrations/cerebras/cerebras_sdk.py +++ b/weave/integrations/cerebras/cerebras_sdk.py @@ -5,8 +5,8 @@ from typing import Any, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher _cerebras_patcher: MultiPatcher | None = None diff --git a/weave/integrations/cohere/cohere_sdk.py b/weave/integrations/cohere/cohere_sdk.py index a9b216c070b5..fc8ee59c08b7 100644 --- a/weave/integrations/cohere/cohere_sdk.py +++ b/weave/integrations/cohere/cohere_sdk.py @@ -5,9 +5,9 @@ from typing import TYPE_CHECKING, Any, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from cohere.types.non_streamed_chat_response import NonStreamedChatResponse diff --git a/weave/integrations/dspy/dspy_sdk.py b/weave/integrations/dspy/dspy_sdk.py index 25293b0f4947..1e0993209a0f 100644 --- a/weave/integrations/dspy/dspy_sdk.py +++ b/weave/integrations/dspy/dspy_sdk.py @@ -4,8 +4,8 @@ from typing import Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher _dspy_patcher: MultiPatcher | None = None diff --git a/weave/integrations/google_ai_studio/google_ai_studio_sdk.py b/weave/integrations/google_ai_studio/google_ai_studio_sdk.py index 7c4e6d2a7406..704605a837f5 100644 --- a/weave/integrations/google_ai_studio/google_ai_studio_sdk.py +++ b/weave/integrations/google_ai_studio/google_ai_studio_sdk.py @@ -5,9 +5,9 @@ from typing import TYPE_CHECKING, Any, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.serialize import dictify from weave.trace.weave_client import Call diff --git a/weave/integrations/groq/groq_sdk.py b/weave/integrations/groq/groq_sdk.py index c5c07fd705f7..a93cf3587fe5 100644 --- a/weave/integrations/groq/groq_sdk.py +++ b/weave/integrations/groq/groq_sdk.py @@ -4,9 +4,9 @@ from typing import TYPE_CHECKING, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from groq.types.chat import ChatCompletion, ChatCompletionChunk diff --git a/weave/integrations/huggingface/huggingface_inference_client_sdk.py b/weave/integrations/huggingface/huggingface_inference_client_sdk.py index f1f0600a0c96..da825608534e 100644 --- a/weave/integrations/huggingface/huggingface_inference_client_sdk.py +++ b/weave/integrations/huggingface/huggingface_inference_client_sdk.py @@ -3,9 +3,9 @@ from typing import TYPE_CHECKING, Any, Callable, Optional, Union import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.serialize import dictify if TYPE_CHECKING: diff --git a/weave/integrations/instructor/instructor_sdk.py b/weave/integrations/instructor/instructor_sdk.py index 00dfde029c9c..477b32794265 100644 --- a/weave/integrations/instructor/instructor_sdk.py +++ b/weave/integrations/instructor/instructor_sdk.py @@ -2,8 +2,8 @@ import importlib +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from .instructor_iterable_utils import instructor_wrapper_async, instructor_wrapper_sync from .instructor_partial_utils import instructor_wrapper_partial diff --git a/weave/integrations/langchain/langchain.py b/weave/integrations/langchain/langchain.py index 759e7a604add..a2abfbe40747 100644 --- a/weave/integrations/langchain/langchain.py +++ b/weave/integrations/langchain/langchain.py @@ -39,9 +39,9 @@ make_pythonic_function_name, truncate_op_name, ) +from weave.integrations.patcher import Patcher from weave.trace.context import call_context from weave.trace.context import weave_client_context as weave_client_context -from weave.trace.patcher import Patcher from weave.trace.weave_client import Call import_failed = False diff --git a/weave/integrations/langchain_nvidia_ai_endpoints/langchain_nv_ai_endpoints.py b/weave/integrations/langchain_nvidia_ai_endpoints/langchain_nv_ai_endpoints.py index 5f78d63e4b41..d52828a40085 100644 --- a/weave/integrations/langchain_nvidia_ai_endpoints/langchain_nv_ai_endpoints.py +++ b/weave/integrations/langchain_nvidia_ai_endpoints/langchain_nv_ai_endpoints.py @@ -12,10 +12,10 @@ import_failed = True import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op import Op, ProcessedInputs from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher _lc_nvidia_patcher: MultiPatcher | None = None diff --git a/weave/integrations/litellm/litellm.py b/weave/integrations/litellm/litellm.py index 9ae6e492c84e..ff1950994b3d 100644 --- a/weave/integrations/litellm/litellm.py +++ b/weave/integrations/litellm/litellm.py @@ -4,9 +4,9 @@ from typing import TYPE_CHECKING, Any, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from litellm.utils import ModelResponse diff --git a/weave/integrations/llamaindex/llamaindex.py b/weave/integrations/llamaindex/llamaindex.py index 2e10476854d9..b9cc1a33aca1 100644 --- a/weave/integrations/llamaindex/llamaindex.py +++ b/weave/integrations/llamaindex/llamaindex.py @@ -1,5 +1,5 @@ +from weave.integrations.patcher import Patcher from weave.trace.context import weave_client_context as weave_client_context -from weave.trace.patcher import Patcher from weave.trace.weave_client import Call TRANSFORM_EMBEDDINGS = False diff --git a/weave/integrations/mistral/v0/mistral.py b/weave/integrations/mistral/v0/mistral.py index 70a3fa183bb8..e77826586a5a 100644 --- a/weave/integrations/mistral/v0/mistral.py +++ b/weave/integrations/mistral/v0/mistral.py @@ -4,9 +4,9 @@ from typing import TYPE_CHECKING, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from mistralai.models.chat_completion import ( diff --git a/weave/integrations/mistral/v1/mistral.py b/weave/integrations/mistral/v1/mistral.py index d52d42af3c4f..96a40ce7ece6 100644 --- a/weave/integrations/mistral/v1/mistral.py +++ b/weave/integrations/mistral/v1/mistral.py @@ -4,9 +4,9 @@ from typing import TYPE_CHECKING, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from mistralai.models import ( diff --git a/weave/integrations/notdiamond/tracing.py b/weave/integrations/notdiamond/tracing.py index 23589719be78..721464d8eac6 100644 --- a/weave/integrations/notdiamond/tracing.py +++ b/weave/integrations/notdiamond/tracing.py @@ -4,8 +4,8 @@ from typing import Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher _notdiamond_patcher: MultiPatcher | None = None diff --git a/weave/integrations/openai/openai_sdk.py b/weave/integrations/openai/openai_sdk.py index 7bf8691c83e8..031444e7d347 100644 --- a/weave/integrations/openai/openai_sdk.py +++ b/weave/integrations/openai/openai_sdk.py @@ -5,10 +5,10 @@ from typing import TYPE_CHECKING, Any, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op import Op, ProcessedInputs from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher if TYPE_CHECKING: from openai.types.chat import ChatCompletionChunk diff --git a/weave/trace/patcher.py b/weave/integrations/patcher.py similarity index 100% rename from weave/trace/patcher.py rename to weave/integrations/patcher.py diff --git a/weave/integrations/vertexai/vertexai_sdk.py b/weave/integrations/vertexai/vertexai_sdk.py index 03f06ee72c47..75bc5f7881e6 100644 --- a/weave/integrations/vertexai/vertexai_sdk.py +++ b/weave/integrations/vertexai/vertexai_sdk.py @@ -5,9 +5,9 @@ from typing import TYPE_CHECKING, Any, Callable import weave +from weave.integrations.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.autopatch import IntegrationSettings, OpSettings from weave.trace.op_extensions.accumulator import add_accumulator -from weave.trace.patcher import MultiPatcher, NoOpPatcher, SymbolPatcher from weave.trace.serialize import dictify from weave.trace.weave_client import Call From cef02861a4ebddbe05499b3fc84efe5929539c0c Mon Sep 17 00:00:00 2001 From: Jamie Rasmussen <112953339+jamie-rasmussen@users.noreply.github.com> Date: Fri, 21 Feb 2025 10:14:30 -0600 Subject: [PATCH 27/27] chore(weave): add page_size parameter to children (#3723) --- weave/trace/weave_client.py | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/weave/trace/weave_client.py b/weave/trace/weave_client.py index 039b90bdf7e8..41bc8c3bf8d6 100644 --- a/weave/trace/weave_client.py +++ b/weave/trace/weave_client.py @@ -256,6 +256,7 @@ def __len__(self) -> int: # TODO: should be Call, not WeaveObject CallsIter = PaginatedIterator[CallSchema, WeaveObject] +DEFAULT_CALLS_PAGE_SIZE = 1000 def _make_calls_iterator( @@ -270,6 +271,7 @@ def _make_calls_iterator( include_feedback: bool = False, columns: list[str] | None = None, expand_columns: list[str] | None = None, + page_size: int = DEFAULT_CALLS_PAGE_SIZE, ) -> CallsIter: def fetch_func(offset: int, limit: int) -> list[CallSchema]: response = server.calls_query( @@ -310,6 +312,7 @@ def size_func() -> int: size_func=size_func, limit=limit_override, offset=offset_override, + page_size=page_size, ) @@ -549,7 +552,16 @@ def ref(self) -> CallRef: return CallRef(entity, project, self.id) # These are the children if we're using Call at read-time - def children(self) -> CallsIter: + def children(self, *, page_size: int = DEFAULT_CALLS_PAGE_SIZE) -> CallsIter: + """ + Get the children of the call. + + Args: + page_size: Tune performance by changing the number of calls fetched at a time. + + Returns: + An iterator of calls. + """ client = weave_client_context.require_weave_client() if not self.id: raise ValueError( @@ -561,6 +573,7 @@ def children(self) -> CallsIter: client.server, self.project_id, CallsFilter(parent_ids=[self.id]), + page_size=page_size, ) def delete(self) -> bool: @@ -907,6 +920,7 @@ def get_calls( include_feedback: bool = False, columns: list[str] | None = None, scored_by: str | list[str] | None = None, + page_size: int = DEFAULT_CALLS_PAGE_SIZE, ) -> CallsIter: """ Get a list of calls. @@ -926,6 +940,7 @@ def get_calls( to filter by. Multiple scorers are ANDed together. If passing in just the name, then scores for all versions of the scorer are returned. If passing in the full ref URI, then scores for a specific version of the scorer are returned. + page_size: Tune performance by changing the number of calls fetched at a time. Returns: An iterator of calls. @@ -946,6 +961,7 @@ def get_calls( include_costs=include_costs, include_feedback=include_feedback, columns=columns, + page_size=page_size, ) @deprecated(new_name="get_calls")