Files
crewAI/lib/crewai/tests/cassettes/TestCrewMultimodalFileUpload.test_image_upload_openai_responses.yaml
Greyson LaLonde c4c9208229 feat: native multimodal file handling; openai responses api
- add input_files parameter to Crew.kickoff(), Flow.kickoff(), Task, and Agent.kickoff()
- add provider-specific file uploaders for OpenAI, Anthropic, Gemini, and Bedrock
- add file type detection, constraint validation, and automatic format conversion
- add URL file source support for multimodal content
- add streaming uploads for large files
- add prompt caching support for Anthropic
- add OpenAI Responses API support
2026-01-23 15:13:25 -05:00

224 lines
44 KiB
YAML

interactions:
- request:
body: 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
headers:
User-Agent:
- X-USER-AGENT-XXX
accept:
- application/json
accept-encoding:
- ACCEPT-ENCODING-XXX
authorization:
- AUTHORIZATION-XXX
connection:
- keep-alive
content-length:
- '28021'
content-type:
- multipart/form-data; boundary=8e6bfdbbb09521a675f5fe4799335eae
host:
- api.openai.com
x-stainless-arch:
- X-STAINLESS-ARCH-XXX
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- X-STAINLESS-OS-XXX
x-stainless-package-version:
- 1.83.0
x-stainless-read-timeout:
- X-STAINLESS-READ-TIMEOUT-XXX
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.10
method: POST
uri: https://api.openai.com/v1/files
response:
body:
string: "{\n \"object\": \"file\",\n \"id\": \"file-QX5LFLLtXActF4s7S62qPm\",\n
\ \"purpose\": \"vision\",\n \"filename\": \"revenue_chart.png\",\n \"bytes\":
27749,\n \"created_at\": 1769197447,\n \"expires_at\": null,\n \"status\":
\"processed\",\n \"status_details\": null\n}\n"
headers:
CF-RAY:
- CF-RAY-XXX
Connection:
- keep-alive
Content-Type:
- application/json
Date:
- Fri, 23 Jan 2026 19:44:07 GMT
Server:
- cloudflare
Set-Cookie:
- SET-COOKIE-XXX
Strict-Transport-Security:
- STS-XXX
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- X-CONTENT-TYPE-XXX
access-control-allow-origin:
- '*'
alt-svc:
- h3=":443"; ma=86400
cf-cache-status:
- DYNAMIC
openai-organization:
- OPENAI-ORG-XXX
openai-processing-ms:
- '177'
openai-project:
- OPENAI-PROJECT-XXX
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '183'
x-openai-proxy-wasm:
- v0.1
x-request-id:
- X-REQUEST-ID-XXX
status:
code: 200
message: OK
- request:
body: '{"input":[{"role":"user","content":[{"type":"input_text","text":"\nCurrent
Task: Describe the file(s) you see. Be brief, one sentence max.\n\nInput files
(content already loaded in conversation):\n - \"chart\" (revenue_chart.png)\n\nThis
is the expected criteria for your final answer: A brief description of the file.\nyou
MUST return the actual complete content as the final answer, not a summary.\n\nBegin!
This is VERY important to you, use the tools available and give your best Final
Answer, your job depends on it!\n\nThought:"},{"type":"input_image","file_id":"file-QX5LFLLtXActF4s7S62qPm"}]}],"model":"gpt-4o-mini","instructions":"You
are File Analyst. Expert at analyzing various file types.\nYour personal goal
is: Analyze and describe files accurately\nTo give my best complete final answer
to the task respond using the exact following format:\n\nThought: I now can
give a great answer\nFinal Answer: Your final answer must be the great and the
most complete as possible, it must be outcome described.\n\nI MUST use these
formats, my job depends on it!"}'
headers:
User-Agent:
- X-USER-AGENT-XXX
accept:
- application/json
accept-encoding:
- ACCEPT-ENCODING-XXX
authorization:
- AUTHORIZATION-XXX
connection:
- keep-alive
content-length:
- '1068'
content-type:
- application/json
host:
- api.openai.com
x-stainless-arch:
- X-STAINLESS-ARCH-XXX
x-stainless-async:
- 'false'
x-stainless-lang:
- python
x-stainless-os:
- X-STAINLESS-OS-XXX
x-stainless-package-version:
- 1.83.0
x-stainless-read-timeout:
- X-STAINLESS-READ-TIMEOUT-XXX
x-stainless-retry-count:
- '0'
x-stainless-runtime:
- CPython
x-stainless-runtime-version:
- 3.12.10
method: POST
uri: https://api.openai.com/v1/responses
response:
body:
string: "{\n \"id\": \"resp_00d8cede4b0a44e6006973cf87d90c8190aacdf0a6488a4db3\",\n
\ \"object\": \"response\",\n \"created_at\": 1769197448,\n \"status\":
\"completed\",\n \"background\": false,\n \"billing\": {\n \"payer\":
\"developer\"\n },\n \"completed_at\": 1769197450,\n \"error\": null,\n
\ \"frequency_penalty\": 0.0,\n \"incomplete_details\": null,\n \"instructions\":
\"You are File Analyst. Expert at analyzing various file types.\\nYour personal
goal is: Analyze and describe files accurately\\nTo give my best complete
final answer to the task respond using the exact following format:\\n\\nThought:
I now can give a great answer\\nFinal Answer: Your final answer must be the
great and the most complete as possible, it must be outcome described.\\n\\nI
MUST use these formats, my job depends on it!\",\n \"max_output_tokens\":
null,\n \"max_tool_calls\": null,\n \"model\": \"gpt-4o-mini-2024-07-18\",\n
\ \"output\": [\n {\n \"id\": \"msg_00d8cede4b0a44e6006973cf891b908190813a293cd6e18ee5\",\n
\ \"type\": \"message\",\n \"status\": \"completed\",\n \"content\":
[\n {\n \"type\": \"output_text\",\n \"annotations\":
[],\n \"logprobs\": [],\n \"text\": \"Thought: I now can
give a great answer \\nFinal Answer: The file \\\"revenue_chart.png\\\" is
a line graph illustrating revenue growth over time from 2020 to 2024, with
a clear upward trend indicating increasing revenue in millions of dollars.\"\n
\ }\n ],\n \"role\": \"assistant\"\n }\n ],\n \"parallel_tool_calls\":
true,\n \"presence_penalty\": 0.0,\n \"previous_response_id\": null,\n \"prompt_cache_key\":
null,\n \"prompt_cache_retention\": null,\n \"reasoning\": {\n \"effort\":
null,\n \"summary\": null\n },\n \"safety_identifier\": null,\n \"service_tier\":
\"default\",\n \"store\": true,\n \"temperature\": 1.0,\n \"text\": {\n
\ \"format\": {\n \"type\": \"text\"\n },\n \"verbosity\": \"medium\"\n
\ },\n \"tool_choice\": \"auto\",\n \"tools\": [],\n \"top_logprobs\":
0,\n \"top_p\": 1.0,\n \"truncation\": \"disabled\",\n \"usage\": {\n \"input_tokens\":
14363,\n \"input_tokens_details\": {\n \"cached_tokens\": 0\n },\n
\ \"output_tokens\": 53,\n \"output_tokens_details\": {\n \"reasoning_tokens\":
0\n },\n \"total_tokens\": 14416\n },\n \"user\": null,\n \"metadata\":
{}\n}"
headers:
CF-RAY:
- CF-RAY-XXX
Connection:
- keep-alive
Content-Type:
- application/json
Date:
- Fri, 23 Jan 2026 19:44:10 GMT
Server:
- cloudflare
Set-Cookie:
- SET-COOKIE-XXX
Strict-Transport-Security:
- STS-XXX
Transfer-Encoding:
- chunked
X-Content-Type-Options:
- X-CONTENT-TYPE-XXX
alt-svc:
- h3=":443"; ma=86400
cf-cache-status:
- DYNAMIC
openai-organization:
- OPENAI-ORG-XXX
openai-processing-ms:
- '2265'
openai-project:
- OPENAI-PROJECT-XXX
openai-version:
- '2020-10-01'
x-envoy-upstream-service-time:
- '2268'
x-ratelimit-limit-requests:
- X-RATELIMIT-LIMIT-REQUESTS-XXX
x-ratelimit-limit-tokens:
- X-RATELIMIT-LIMIT-TOKENS-XXX
x-ratelimit-remaining-requests:
- X-RATELIMIT-REMAINING-REQUESTS-XXX
x-ratelimit-remaining-tokens:
- X-RATELIMIT-REMAINING-TOKENS-XXX
x-ratelimit-reset-requests:
- X-RATELIMIT-RESET-REQUESTS-XXX
x-ratelimit-reset-tokens:
- X-RATELIMIT-RESET-TOKENS-XXX
x-request-id:
- X-REQUEST-ID-XXX
status:
code: 200
message: OK
version: 1