From b8f94c4ecb1076331ba6528f90ea125e85250383 Mon Sep 17 00:00:00 2001 From: Jorge Manrubia Date: Fri, 16 May 2025 12:54:00 +0200 Subject: [PATCH] Add VCR and some initial tests --- Gemfile | 4 +- Gemfile.lock | 12 + app/models/command.rb | 2 +- app/models/command/ai/translator.rb | 180 +-- app/models/command/get_insight.rb | 2 +- config/initializers/ruby_llm.rb | 2 +- test/models/command/ai/translator_test.rb | 101 +- test/test_helper.rb | 15 + test/test_helpers/vcr_test_helper.rb | 35 + .../ai/translator_test-test_assign_cards.yml | 426 ++++++ .../ai/translator_test-test_close_cards.yml | 847 +++++++++++ ...test-test_combine_commands_and_filters.yml | 645 +++++++++ ...slator_test-test_filter_by_assignments.yml | 1276 +++++++++++++++++ ...nslator_test-test_filter_by_collection.yml | 427 ++++++ ...nslator_test-test_filter_by_indexed_by.yml | 1063 ++++++++++++++ .../ai/translator_test-test_filter_by_tag.yml | 851 +++++++++++ ...tor_test-test_getting_insight_on_cards.yml | 851 +++++++++++ .../ai/translator_test-test_tag_cards.yml | 214 +++ 18 files changed, 6838 insertions(+), 115 deletions(-) create mode 100644 test/test_helpers/vcr_test_helper.rb create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_assign_cards.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_close_cards.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_combine_commands_and_filters.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_filter_by_assignments.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_filter_by_collection.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_filter_by_indexed_by.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_filter_by_tag.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_getting_insight_on_cards.yml create mode 100644 test/vcr_cassettes/command/ai/translator_test-test_tag_cards.yml diff --git a/Gemfile b/Gemfile index d8ee4f09a..86ffeb0e0 100644 --- a/Gemfile +++ b/Gemfile @@ -34,7 +34,7 @@ gem "sentry-rails" gem "rails_structured_logging", bc: "rails-structured-logging" gem "ruby_llm", git: "https://github.com/crmne/ruby_llm.git" -gem 'sqlite-vec', '0.1.7.alpha.2' +gem "sqlite-vec", "0.1.7.alpha.2" group :development, :test do gem "debug" @@ -46,4 +46,6 @@ end group :test do gem "capybara" gem "selenium-webdriver" + gem "webmock" + gem "vcr" end diff --git a/Gemfile.lock b/Gemfile.lock index cfe6386cd..95140273e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -159,6 +159,9 @@ GEM chunky_png (1.4.0) concurrent-ruby (1.3.5) connection_pool (2.5.3) + crack (1.0.0) + bigdecimal + rexml crass (1.0.6) date (3.4.1) debug (1.10.0) @@ -189,6 +192,7 @@ GEM addressable (>= 2.5.0) globalid (1.2.1) activesupport (>= 6.1) + hashdiff (1.1.2) i18n (1.14.7) concurrent-ruby (~> 1.0) importmap-rails (2.1.0) @@ -407,6 +411,12 @@ GEM unicode-emoji (4.0.4) uri (1.0.3) useragent (0.16.11) + vcr (6.3.1) + base64 + webmock (3.25.1) + addressable (>= 2.8.0) + crack (>= 0.3.2) + hashdiff (>= 0.4.0, < 2.0.0) websocket (1.2.11) websocket-driver (0.7.7) base64 @@ -455,6 +465,8 @@ DEPENDENCIES stimulus-rails thruster turbo-rails + vcr + webmock BUNDLED WITH 2.5.21 diff --git a/app/models/command.rb b/app/models/command.rb index 4d9b201bd..d5a3eacef 100644 --- a/app/models/command.rb +++ b/app/models/command.rb @@ -4,7 +4,7 @@ class Command < ApplicationRecord belongs_to :user belongs_to :parent, class_name: "Command", optional: true - scope :root, ->{ where(parent_id: nil) } + scope :root, -> { where(parent_id: nil) } attribute :context diff --git a/app/models/command/ai/translator.rb b/app/models/command/ai/translator.rb index ed4a89c13..3e9eaeda6 100644 --- a/app/models/command/ai/translator.rb +++ b/app/models/command/ai/translator.rb @@ -10,7 +10,7 @@ class Command::Ai::Translator def translate(query) response = translate_query_with_llm(query) Rails.logger.info "*** Commands: #{response}" - compact JSON.parse(response) + normalize JSON.parse(response) end private @@ -30,117 +30,112 @@ class Command::Ai::Translator def prompt <<~PROMPT - You are Fizzy’s command translator. Given a request by the user you should: + You are Fizzy’s command translator. Your task is to: - 1. Read the user’s request - 2. Consult the current view - 3. Determine if you need a new context to resolve the query or if the current view is enough. - 4. Create as many commands as you need to satisfy the request. - 5. Output a JSON object that contains: - * The new context properties, when a new context is needed. - * A **single JSON array** of command objects to execute + 1. Read the user's request. + 2. Consult the current context (provided below for informational purposes only). + 3. Determine if the current context suffices or if a new context is required. + 4. Generate only the necessary commands to fulfill the request. + 5. Output a JSON object containing ONLY: - Fizzy data includes cards and comments contained in those. A card can represent an issue, a feature, - a bug, a task, a problem, etc. Cards are contained in collections. + * A "context" object (only if a new filtering context is required, strictly following defined properties below). + * A "commands" array (only if commands are explicitly requested or clearly implied). - ## Determine context + Do NOT add any other properties to your JSON output. - If the query seems to refer to filtering certain cards, try to satisfy the filter with the supported options: + The description of the current view ("inside a card", "viewing a list of cards", or "not seeing cards") is informational only. Do NOT reflect this description explicitly or implicitly in your output JSON. NEVER generate properties like "view" or add "terms" based on "card" or "list" context. - * terms: a list of terms to search for. Use this option to refine searches based on further keyword*based - queries. Pass an array even when it's only one term. Always send individual terms separated by spaces. - E.g: ["some", "term"] instead of ["some term"]. - * indexed_by: can be "newest", "oldest", "latest", "stalled", "closed" - * assignee_ids: the name of the person or persons assigned to the card. - * assignment_status: only used to filter unassigned cards with "unassigned". - * engagement_status: can be "considering" or "doing". This refers to whether the team is working on something. - * card_ids: a list of card ids - * creator_id: the name of a person - * collection_ids: a list of collection names. Cards are contained in collections. Don't use unless mentioning - specific collections. - * tag_ids: a list of tag names. + ## Fizzy Data Structure - What to use to filter: + * **Cards**: Represent issues, features, bugs, tasks, or problems. + * Cards have **comments** and are contained within **collections**. - - To filter cards assigned to people, use "assignee_ids" and pass the name of the person or persons. - - To filter cards created by someone, use "creator_id". - - To filter cards with certain tags, use "tag_ids" and pass the name of the tag or tags. - - To filter unassigned cards, use "assignment_status" and pass "unassigned". - - To filter someone's card, filter the cards where that person is the assignee. - - To filter cards by certain subject, use "terms" to pass relevant keywords. Avoid generic keywords, - extract the relevant ones. - - The user may refer to "my" or "I" to refer to the cards assigned to him/her. - - To search cards completed by someone filter by cards assigned to that person that are completed. - - My cards are cards assigned to me. Someone's cards are cards assigned to that person. - - My recent cards are cards assigned to me with indexed_by:newest. - - To filter cards or problems reported by someone use "creator_id" and pass the name of the person. + ## Context Properties for Filtering (use explicitly): - If a new context is needed, the output json will contain a "context"" property with the required properties: + * **terms**: Array of keywords (split individually, e.g., \["some", "term"]). Avoid redundancy. + * **indexed\_by**: "newest", "oldest", "latest", "stalled", "closed". - Example: { context: { terms: ["design", "title"] }, assignee_ids: ["jz"], tag_ids: ["design"], commands: [.....] } + * "closed": completed cards. + * "newest": by creation date, "latest": by update date. + * **assignee\_ids**: Array of assignee names. + * **assignment\_status**: "unassigned". + * **engagement\_status**: "considering" or "doing". + * **card\_ids**: Array of card IDs. + * **creator\_id**: Creator's name. + * **collection\_ids**: Array of explicitly mentioned collections. + * **tag\_ids**: Array of tag names (use for "#tag" or "tagged with"). - When the user is in a view "not seeing cards", then always create a context to satisfy the request. + ## Explicit Filtering Rules: - If the query does not refer to filtering certain cards, the output won't contain any context key. Notice there is already a - context in the current view, and, unless the request indicate otherwise, that's the context you should assume. + * "Assigned to X": use `assignee_ids`. + * "Created by X": use `creator_id`. + * "Tagged with X", "#X cards": use `tag_ids` (never "terms"). + - For example: "#design cards" or "cards tagged with #design" should always result in `tag_ids: ["design"]`. + * "Unassigned cards": use `assignment_status: "unassigned"`. + * "My cards": Cards assigned to the requester. + * "Recent cards": use `indexed_by: "newest"`. + * "Cards with recent activity": use `indexed_by: "latest"`. + * "Completed/closed cards": use `indexed_by: "closed"`. + * Unknown terms: default to `terms`. - If you can't infer clear commands or filtering conditions, just create a context that searches using "terms" derived from - the query. + ## Command Interpretation Rules: - ## Supported commands: + * "tag with #design": always `/tag #design`. Do NOT create `tag_ids` context. + * "#design cards" or "cards tagged with #design": use `tag_ids`. + * "Assign cards tagged with #design to jz": filter by `tag_ids`, command `/assign jz`. Do NOT generate `/tag` command. - A command is represented with simple string that contains the command preffixed with / and may contain additional params - separated by spaces. The supported commands are: + ## ⚠️ Crucial Rules to Avoid Confusion: - - Assign users to cards: Syntax: /assign [user]. The user can be prefixed with @. Example: "/assign kevin" or "/assign @kevin" - - Close cards: Syntax: /close [optional reason]. Example: "/close" or "/close not now" - - Tag cards with certain one or multiple tags: Syntax: /tag [tag-name]. The tag can be prefixed with #. Example: "/tag performance" or "/tag #peformance" - - Clear filters: Syntax: /clear - - Get AI insight about cards: Syntax: /insight [query]. Example: "/insight summarize". Notice that this can be combined with - creating a new context to get insight from. Always use /insight when the user asks a question. + * **Context filters** always represent **existing conditions** that cards **already satisfy**. + * **Commands** (`/assign`, `/tag`, `/close`) represent **new actions** to apply. + * **NEVER** use names or tags mentioned in **commands** as filtering criteria. - Notice that commands can be combined with filtering to specify the context. For example: "close cards assigned to jorge" should - generate a context to search cards assigned to jorge and a /close command to act on those. + * E.g.: "Assign andy" means a **new assignment** to `andy`. Do NOT filter by `assignee_ids: ["andy"]`. + * E.g.: "Tag with #v2" means applying a **new tag**. Do NOT filter by `tag_ids: ["v2"]`. - Some queries simply require creating a new context and not running any command. For example "cards assigned to jorge", - "issues about headlines tagged with #design" are mere filtering requests that are satisfied by creating a new context. Don't -' add a "commands" property with an empty array, just avoid the property in these cases. + ### Examples (strictly follow these): - When you do need to create new commands, append them to the JSON under the "commands" property: + User query: + `"assign andy to the current #design cards assigned to jz and tag them with #v2"` - Example: { commands: [ "/assign jorge", "/insight summarize performance issues" ] } + ✅ Correct Output: - Notice that commands and context can be combined if needed: + { + "context": { "assignee_ids": ["jz"], "tag_ids": ["design"] }, + "commands": ["/assign andy", "/tag #v2"] + } - Example: { context: { terms: ["design", "title"] }, commands: [ "/assign jorge" ] } + ❌ Incorrect (DO NOT generate): - Make sure you create as many commands as you need to satisfy the request. + { + "context": { "assignee_ids": ["andy"], "tag_ids": ["v2"] }, + "commands": ["/assign andy", "/tag #v2"] + } - ## JSON format + ## Commands (prefix '/'): - Each command will be a JSON object containing two properties: "commands" and "context". Notice that both are optional - but at least ONE must be present. All these examples are valid: + * Assign user: `/assign [user]` (e.g., `/assign kevin`). + * Close cards: `/close [optional reason]` (e.g., `/close`, `/close not now`). + * Tag cards: `/tag #[tag-name]` (e.g., `/tag #design`). + * Clear filters: `/clear`. + * Insights (mandatory if question asked or explicitly requested): `/insight [query]`. + - Always use `/insight` for queries like "steps to reproduce", "summarize", or similar queries that clearly request insight about cards, + especially when "inside a card". Pass the original query as the argument. - { "context": [ "terms": [ "performance" ] ], "commands": ["/assign jorge", "/close"] } - { "context": [ "terms": [ "performance" ] ] } - { "commands": [ "/assign jorge", "/close"] } + ## JSON Output Examples (strictly follow these patterns): - Make sure you generate valid JSON with both keys and values within quotes. + { "context": { "assignee_ids": ["jorge"] }, "commands": ["/close"] } + { "context": { "tag_ids": ["design"] } } + { "commands": ["/assign jorge", "/tag #design"] } - # Other + Omit empty arrays or unnecessary properties. At least one property (`context` or `commands`) must exist. - * Avoid empty preambles like "Based on the provided cards". Be friendly, favor an active voice. - * Be concise and direct. - * When emitting search commands, if searching for terms, remove generic ones. - * Don't use a "terms" filter for expressions added as other context properties or commands. E.g: if filtering cards assigned to - "jorge"", don't filter by terms "jorge" too. If tagging with "design", don't filter by the term "design" too. - for those terms too. If assigning a tag, don't search that tag too. - * An unassigned card is a card without assignees. - * Never create a /search or /insight without additional params. - * An unassigned card can be closed or not. "unassigned" and "closed" are different unrelated concepts. - * An unassigned card can be "considering" or "doing". "unassigned" and "engagement_status" are different unrelated concepts. - * Only use assignment_status asking for unassigned cards. Never use in other circumstances. - * If the question ends with question mark ALWAYS use an /insight command passing a question extracted from the query. + ## Other Strict Instructions: + + * NEVER add properties based on view descriptions ("card", "list", etc.). + * Avoid redundant terms. + * Don't duplicate terms across properties. + * Favor clarity, precision, and conciseness. PROMPT end @@ -164,12 +159,17 @@ class Command::Ai::Translator end end - def compact(json) - context = json["context"] - context&.each do |key, value| - context[key] = value.presence + def normalize(json) + if context = json["context"] + context.each do |key, value| + context[key] = value.presence + end + context.symbolize_keys! + context.compact! end - context&.compact! - json.compact + + json.delete("context") if json["context"].blank? + json.delete("commands") if json["commands"].blank? + json.symbolize_keys.compact end end diff --git a/app/models/command/get_insight.rb b/app/models/command/get_insight.rb index 6715e1808..adfde915a 100644 --- a/app/models/command/get_insight.rb +++ b/app/models/command/get_insight.rb @@ -34,7 +34,7 @@ class Command::GetInsight < Command ## How to provide insight: - You are a helpful assistant that is able to provide answers and insights about cards. Be concise and + You are a helpful assistant that is able to provide answers and insights about cards. Be concise and#{' '} accurate. - Address the question as much directly as possible. diff --git a/config/initializers/ruby_llm.rb b/config/initializers/ruby_llm.rb index c76244a88..550885ef9 100644 --- a/config/initializers/ruby_llm.rb +++ b/config/initializers/ruby_llm.rb @@ -1,4 +1,4 @@ RubyLLM.configure do |config| - config.openai_api_key = Rails.application.credentials.openai_api_key + config.openai_api_key = Rails.application.credentials.openai_api_key || ENV["OPEN_AI_API_KEY"] config.default_model = "gpt-4.1-nano" end diff --git a/test/models/command/ai/translator_test.rb b/test/models/command/ai/translator_test.rb index 31ba726a8..578acb403 100644 --- a/test/models/command/ai/translator_test.rb +++ b/test/models/command/ai/translator_test.rb @@ -1,34 +1,93 @@ require "test_helper" class Command::Ai::TranslatorTest < ActionDispatch::IntegrationTest - test "sandbox list of cards" do - @url = cards_url + include VcrTestHelper - test_command "tag cards assigned to jz with design" - # test_command "summarize cards about performance" - # test_command "tag with #performance" - # test_command "cards assigned to jorge" - # test_command "performance cards assigned to jorge" - # test_command "close performance cards assigned to jorge and tag them with #performance" + setup do + @user= users(:david) end - test "sandbox single card" do - @url = card_url(cards(:logo)) + test "filter by assignments" do + # List context + assert_command({ context: { assignee_ids: [ "jz" ] } }, "cards assigned to jz") + assert_command({ context: { assignee_ids: [ "jz" ] } }, "assigned to jz") + assert_command({ context: { assignment_status: "unassigned" } }, "unassigned cards") + assert_command({ context: { assignment_status: "unassigned" } }, "not assigned") + assert_command({ context: { assignee_ids: [ "jorge" ], terms: [ "performance" ] } }, "cards about performance assigned to jorge") - test_command "summarize cards about performance" - test_command "tag with performance and close" - test_command "summarize this card" - test_command "tag with #performance" - test_command "cards assigned to jorge" - test_command "performance cards assigned to jorge" - test_command "close performance cards assigned to jorge and tag them with #performance" + # Card context + assert_command({ context: { assignee_ids: [ "jz" ] } }, "cards assigned to jz", context: :card) + end + + test "filter by tag" do + # List context + assert_command({ context: { tag_ids: [ "design" ] } }, "cards tagged with design") + assert_command({ context: { tag_ids: [ "design" ] } }, "cards tagged with #design") + assert_command({ context: { tag_ids: [ "design" ] } }, "#design cards") + + # Card context + assert_command({ context: { tag_ids: [ "design" ] } }, "cards tagged with design") + end + + test "filter by indexed_by" do + # List context + assert_command({ context: { indexed_by: "closed" } }, "closed cards") + assert_command({ context: { indexed_by: "closed" } }, "completed cards") + assert_command({ context: { indexed_by: "closed" } }, "completed") + + assert_command({ context: { indexed_by: "newest" } }, "recent cards") + assert_command({ context: { indexed_by: "latest" } }, "cards with recent activity") + end + + test "getting insight on cards" do + # Card context + assert_command({ commands: [ "/insight summarize" ] }, "summarize", context: :card) + assert_command({ commands: [ "/insight steps to reproduce" ] }, "steps to reproduce", context: :card) + assert_command({ commands: [ "/insight create a table with the main participants and takeaways" ] }, "create a table with the main participants and takeaways", context: :card) + assert_command({ commands: [ "/insight what's the issue here?" ] }, "what's the issue here?", context: :card) + end + + test "filter by collection" do + assert_command({ context: { collection_ids: [ "writebook" ] } }, "writebook collection") + end + + test "close cards" do + # List context + assert_command({ commands: [ "/close" ] }, "close") + assert_command({ commands: [ "/close not now" ] }, "close as not now") + assert_command({ context: { assignee_ids: [ "jz" ] }, commands: [ "/close" ] }, "close cards assigned to jz") + + # Card context + assert_command({ commands: [ "/close" ] }, "close", context: :card) + end + + test "assign cards" do + # List context + assert_command({ commands: [ "/assign jz" ] }, "assign to jz") + assert_command({ context: { tag_ids: [ "design" ] }, commands: [ "/assign jz" ] }, "assign cards tagged with #design to jz", context: :card) + end + + test "tag cards" do + # List context + assert_command({ commands: [ "/tag #design" ] }, "tag with #design") + end + + test "combine commands and filters" do + assert_command({ context: { assignee_ids: [ "jz" ], tag_ids: [ "design" ] }, commands: [ "/assign andy", "/tag #v2" ] }, "assign andy to the current #design cards assigned to jz and tag them with #v2") + assert_command({ context: { assignee_ids: [ "andy" ] }, commands: [ "/close", "/assign kevin" ] }, "close cards assigned to andy and assign them to kevin") + assert_command({ context: { tag_ids: [ "design" ], assignee_ids: [ "jz" ] }, commands: [ "/assign andy", "/tag #v2" ] }, "assign cards tagged with #design assigned to jz to andy and tag them with #v2") end private - def test_command(query) - user = users(:david) - context = Command::Parser::Context.new(user, url: @url) + def assert_command(expected, query, context: :list) + assert_equal expected, translate(query, context:) + end + + def translate(query, user: @user, context: :list) + raise "Context must be :card or _list" unless context.in?(%i[ card list ]) + url = context == :card ? card_url(cards(:logo)) : cards_url + context = Command::Parser::Context.new(user, url: url) translator = Command::Ai::Translator.new(context) - puts translator.translate(query) + translator.translate(query) end end diff --git a/test/test_helper.rb b/test/test_helper.rb index cb34fd812..6e27d82fa 100644 --- a/test/test_helper.rb +++ b/test/test_helper.rb @@ -1,6 +1,17 @@ ENV["RAILS_ENV"] ||= "test" require_relative "../config/environment" require "rails/test_help" +require "webmock/minitest" +require "vcr" + +WebMock.allow_net_connect! + +VCR.configure do |config| + config.allow_http_connections_when_no_cassette = true + config.cassette_library_dir = "test/vcr_cassettes" + config.hook_into :webmock + config.filter_sensitive_data("") { Rails.application.credentials.openai_api_key || ENV["OPEN_AI_API_KEY"] } +end module ActiveSupport class TestCase @@ -14,3 +25,7 @@ module ActiveSupport include CardTestHelper, ChangeTestHelper, SessionTestHelper end end + +RubyLLM.configure do |config| + config.openai_api_key ||= "DUMMY-TEST-KEY" # Run tests with VCR without having to configure OpenAI API key locally. +end diff --git a/test/test_helpers/vcr_test_helper.rb b/test/test_helpers/vcr_test_helper.rb new file mode 100644 index 000000000..71884ad4b --- /dev/null +++ b/test/test_helpers/vcr_test_helper.rb @@ -0,0 +1,35 @@ +# To include in those tests that use VCR. It will automatically insert a VCR cassette named after the test. By default, +# it will run the test in "replay" mode. To switch to record mode, you can either: +# +# * Set the environment variable +VCR_RECORD+. +# * Use +.vcr_record!+ in your test class. +module VcrTestHelper + extend ActiveSupport::Concern + + included do + class_attribute :vcr_record + + setup do + VCR.insert_cassette "#{self.class.name.tableize.singularize}-#{name}", + record: recording? ? :all : :none, + preserve_exact_body_bytes: true + end + + teardown do + VCR.eject_cassette + end + + def recording? + vcr_record || ENV["VCR_RECORD"] + end + end + + class_methods do + # Use to force record mode at development time: always perform real http interactions and record fixtures + def vcr_record! + raise "#vcr_record! is meant for dev time. You are not supposed to run it in CI." if ENV["CI"] + + self.vcr_record = true + end + end +end diff --git a/test/vcr_cassettes/command/ai/translator_test-test_assign_cards.yml b/test/vcr_cassettes/command/ai/translator_test-test_assign_cards.yml new file mode 100644 index 000000000..5b76877a9 --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_assign_cards.yml @@ -0,0 +1,426 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + YXNzaWduIHRvIGp6In1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVhbSI6 + ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:55 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '346' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '350' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_4dbe302530c29d399e4dae5a7fb1a976 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=_7ab.klbB8ypb81LKJdvNtqviOqaXNSrWUeOVW02wOA-1747393975-1.0.1.1-PKEj2lFmaBreCjQe7PH3WxUrJiXDC8S7GJWMcOGVP2d63iRp8Wl9NayBo2h2cLl09aGBI7ffhTnUaO5LM6GIR5JD0W1SutKYtQfvA1v7WS4; + path=/; expires=Fri, 16-May-25 11:42:55 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=egdPV0Lq.W3r48q3HemBzmvmr1TB9OmVb0xlqq6iVs4-1747393975886-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71597fbd034d-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IakV6TUhRZHJGcFRIS3VlaXVxN25K + QkRBRiIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3NSwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvYXNzaWduIGp6XCJdXG59IiwKICAgICAgICAicmVmdXNhbCI6IG51 + bGwsCiAgICAgICAgImFubm90YXRpb25zIjogW10KICAgICAgfSwKICAgICAg + ImxvZ3Byb2JzIjogbnVsbCwKICAgICAgImZpbmlzaF9yZWFzb24iOiAic3Rv + cCIKICAgIH0KICBdLAogICJ1c2FnZSI6IHsKICAgICJwcm9tcHRfdG9rZW5z + IjogMTIxMywKICAgICJjb21wbGV0aW9uX3Rva2VucyI6IDEzLAogICAgInRv + dGFsX3Rva2VucyI6IDEyMjYsCiAgICAicHJvbXB0X3Rva2Vuc19kZXRhaWxz + IjogewogICAgICAiY2FjaGVkX3Rva2VucyI6IDExNTIsCiAgICAgICJhdWRp + b190b2tlbnMiOiAwCiAgICB9LAogICAgImNvbXBsZXRpb25fdG9rZW5zX2Rl + dGFpbHMiOiB7CiAgICAgICJyZWFzb25pbmdfdG9rZW5zIjogMCwKICAgICAg + ImF1ZGlvX3Rva2VucyI6IDAsCiAgICAgICJhY2NlcHRlZF9wcmVkaWN0aW9u + X3Rva2VucyI6IDAsCiAgICAgICJyZWplY3RlZF9wcmVkaWN0aW9uX3Rva2Vu + cyI6IDAKICAgIH0KICB9LAogICJzZXJ2aWNlX3RpZXIiOiAiZGVmYXVsdCIs + CiAgInN5c3RlbV9maW5nZXJwcmludCI6ICJmcF84ZmQ0MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:12:55 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSBpbnNpZGUgYSBjYXJkIH0uXG4ifV19LHsicm9sZSI6InVzZXIi + LCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJhc3NpZ24gY2Fy + ZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBqeiJ9XX1dLCJ0ZW1wZXJhdHVy + ZSI6MC43LCJzdHJlYW0iOmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:56 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '508' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '518' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198812' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 356ms + X-Request-Id: + - req_f3522603fdf4334e2cf5797c348bb215 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=7TiT35e4Qf3Buw4SLqVusuf2PPtpnigoRPm0Wf2oEPo-1747393976-1.0.1.1-6uZrkvowXh3rD81ll_cPTrg19U9XVGxlgwYk98pZ8uVJVrIZsM6l3ZqLyRbSumS6Fp5INcnSTxmJoOkpFQVSwvtFrGm5hGh76XJo1h7Q9yU; + path=/; expires=Fri, 16-May-25 11:42:56 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=jltlikQWRLlvradhePYIlyAY1ZTQaY0.irsui3EEsI8-1747393976749-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a715dae65eca2-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Ia0U3Vk5pcTA1ODU4OEdUcFJwb2hK + bE51eCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3NiwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRz + XCI6IFtcIi9hc3NpZ24ganpcIl1cbn0iLAogICAgICAgICJyZWZ1c2FsIjog + bnVsbCwKICAgICAgICAiYW5ub3RhdGlvbnMiOiBbXQogICAgICB9LAogICAg + ICAibG9ncHJvYnMiOiBudWxsLAogICAgICAiZmluaXNoX3JlYXNvbiI6ICJz + dG9wIgogICAgfQogIF0sCiAgInVzYWdlIjogewogICAgInByb21wdF90b2tl + bnMiOiAxMjE2LAogICAgImNvbXBsZXRpb25fdG9rZW5zIjogMjUsCiAgICAi + dG90YWxfdG9rZW5zIjogMTI0MSwKICAgICJwcm9tcHRfdG9rZW5zX2RldGFp + bHMiOiB7CiAgICAgICJjYWNoZWRfdG9rZW5zIjogMCwKICAgICAgImF1ZGlv + X3Rva2VucyI6IDAKICAgIH0sCiAgICAiY29tcGxldGlvbl90b2tlbnNfZGV0 + YWlscyI6IHsKICAgICAgInJlYXNvbmluZ190b2tlbnMiOiAwLAogICAgICAi + YXVkaW9fdG9rZW5zIjogMCwKICAgICAgImFjY2VwdGVkX3ByZWRpY3Rpb25f + dG9rZW5zIjogMCwKICAgICAgInJlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5z + IjogMAogICAgfQogIH0sCiAgInNlcnZpY2VfdGllciI6ICJkZWZhdWx0IiwK + ICAic3lzdGVtX2ZpbmdlcnByaW50IjogImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:12:56 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_close_cards.yml b/test/vcr_cassettes/command/ai/translator_test-test_close_cards.yml new file mode 100644 index 000000000..22c19a9bc --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_close_cards.yml @@ -0,0 +1,847 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2xvc2UifV19XSwidGVtcGVyYXR1cmUiOjAuNywic3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:57 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '291' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '294' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198817' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 354ms + X-Request-Id: + - req_e8b60d55aff6441926af74f0460585c2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=JJUyR20s3rluwn5SoWIQMkV9dGvXxgVVq5YXD5YdrE4-1747393977-1.0.1.1-38r0DMBxHNAykCTJE2c2ZbhahnqhckuEYwTs6xtzn2yb4SVBktcZuLkq3UMzi_GbACyXkbppXsovW5EDKXkMJ9W_I3G2UYbUlimmlrSRMZc; + path=/; expires=Fri, 16-May-25 11:42:57 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=.iRJwrzTViYd4IhjpTRGm8o0UWV3RjGV5R8bLfcutEM-1747393977568-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a7164399d1a84-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IbDM2WktSV0w3TmJRMmE0Q3hCdnhC + UUlsWSIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3NywKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvY2xvc2VcIl1cbn0iLAogICAgICAgICJyZWZ1c2FsIjogbnVsbCwK + ICAgICAgICAiYW5ub3RhdGlvbnMiOiBbXQogICAgICB9LAogICAgICAibG9n + cHJvYnMiOiBudWxsLAogICAgICAiZmluaXNoX3JlYXNvbiI6ICJzdG9wIgog + ICAgfQogIF0sCiAgInVzYWdlIjogewogICAgInByb21wdF90b2tlbnMiOiAx + MjEwLAogICAgImNvbXBsZXRpb25fdG9rZW5zIjogMTAsCiAgICAidG90YWxf + dG9rZW5zIjogMTIyMCwKICAgICJwcm9tcHRfdG9rZW5zX2RldGFpbHMiOiB7 + CiAgICAgICJjYWNoZWRfdG9rZW5zIjogMTAyNCwKICAgICAgImF1ZGlvX3Rv + a2VucyI6IDAKICAgIH0sCiAgICAiY29tcGxldGlvbl90b2tlbnNfZGV0YWls + cyI6IHsKICAgICAgInJlYXNvbmluZ190b2tlbnMiOiAwLAogICAgICAiYXVk + aW9fdG9rZW5zIjogMCwKICAgICAgImFjY2VwdGVkX3ByZWRpY3Rpb25fdG9r + ZW5zIjogMCwKICAgICAgInJlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjog + MAogICAgfQogIH0sCiAgInNlcnZpY2VfdGllciI6ICJkZWZhdWx0IiwKICAi + c3lzdGVtX2ZpbmdlcnByaW50IjogImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:12:57 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2xvc2UgYXMgbm90IG5vdyJ9XX1dLCJ0ZW1wZXJhdHVyZSI6MC43LCJzdHJl + YW0iOmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:58 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '319' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '322' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198815' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_1644551bfa8a1ec0d7e3625994fc7384 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=kVVMua16Lnw_gFeQbJ0DHm702YynL6688G11u3RVR8U-1747393978-1.0.1.1-3HZe8z545eiwii9CD9UXK0_WWqw.bOLjV4t2.oih5KajPuNSnLlXgAWVcQGR8BDtYGJ4v.vSB5amyNwObmSHolPB5DnwX3ZD3Bst.vMoGfk; + path=/; expires=Fri, 16-May-25 11:42:58 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=3Lw8yvI5fakUBrA_zMsuekky.DuFEgC17ckTckxScWY-1747393978227-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a716839991bae-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IbDlhZUpkcjlEVzVxUzZIaE5MeWNQ + aDBKQSIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3NywKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvY2xvc2Ugbm90IG5vd1wiXVxufSIsCiAgICAgICAgInJlZnVzYWwi + OiBudWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAgICAgIH0sCiAg + ICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hfcmVhc29uIjog + InN0b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAicHJvbXB0X3Rv + a2VucyI6IDEyMTMsCiAgICAiY29tcGxldGlvbl90b2tlbnMiOiAxMywKICAg + ICJ0b3RhbF90b2tlbnMiOiAxMjI2LAogICAgInByb21wdF90b2tlbnNfZGV0 + YWlscyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAxMTUyLAogICAgICAi + YXVkaW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0aW9uX3Rva2Vu + c19kZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2VucyI6IDAsCiAg + ICAgICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0ZWRfcHJlZGlj + dGlvbl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJlZGljdGlvbl90 + b2tlbnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVyIjogImRlZmF1 + bHQiLAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfOGZkNDM3MThiMyIK + fQo= + recorded_at: Fri, 16 May 2025 11:12:58 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2xvc2UgY2FyZHMgYXNzaWduZWQgdG8ganoifV19XSwidGVtcGVyYXR1cmUi + OjAuNywic3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:59 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '564' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '568' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198812' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 356ms + X-Request-Id: + - req_77302f9c5cce0d9d820b34fcf6e06b6c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=Hdw_eyfoThWm88dzJoaHHXxPGepYynHf7ctkNA9ckVk-1747393979-1.0.1.1-se0YA5ai_gnptqH_Dxwpsiex2rmYmJCjiOioiCaRqmhMbMUK8NRHM.HAnieUG_cX4EY1fD7LFIrkOf.O5FHaWHn5AMxynigLSy0HEcbDvrQ; + path=/; expires=Fri, 16-May-25 11:42:59 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=p4VJ2lKJfl5J0uZ8FfwGeVkqbacSh5mXRe3_IG30nqc-1747393979136-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a716c4f2f3845-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IbUhQNFdvbFgyb2JuT3E1ZUl1U081 + OFhHQSIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3OCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wianpcIl0gfSxcbiAgXCJjb21tYW5k + c1wiOiBbXCIvY2xvc2VcIl1cbn0iLAogICAgICAgICJyZWZ1c2FsIjogbnVs + bCwKICAgICAgICAiYW5ub3RhdGlvbnMiOiBbXQogICAgICB9LAogICAgICAi + bG9ncHJvYnMiOiBudWxsLAogICAgICAiZmluaXNoX3JlYXNvbiI6ICJzdG9w + IgogICAgfQogIF0sCiAgInVzYWdlIjogewogICAgInByb21wdF90b2tlbnMi + OiAxMjE1LAogICAgImNvbXBsZXRpb25fdG9rZW5zIjogMjUsCiAgICAidG90 + YWxfdG9rZW5zIjogMTI0MCwKICAgICJwcm9tcHRfdG9rZW5zX2RldGFpbHMi + OiB7CiAgICAgICJjYWNoZWRfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rv + a2VucyI6IDAKICAgIH0sCiAgICAiY29tcGxldGlvbl90b2tlbnNfZGV0YWls + cyI6IHsKICAgICAgInJlYXNvbmluZ190b2tlbnMiOiAwLAogICAgICAiYXVk + aW9fdG9rZW5zIjogMCwKICAgICAgImFjY2VwdGVkX3ByZWRpY3Rpb25fdG9r + ZW5zIjogMCwKICAgICAgInJlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjog + MAogICAgfQogIH0sCiAgInNlcnZpY2VfdGllciI6ICJkZWZhdWx0IiwKICAi + c3lzdGVtX2ZpbmdlcnByaW50IjogImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:12:59 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSBpbnNpZGUgYSBjYXJkIH0uXG4ifV19LHsicm9sZSI6InVzZXIi + LCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJjbG9zZSJ9XX1d + LCJ0ZW1wZXJhdHVyZSI6MC43LCJzdHJlYW0iOmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:59 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '289' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '293' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198820' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 354ms + X-Request-Id: + - req_99df930b022c9ccbbfb726c85d66a70c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=Pl6rdol3ivMWRHpWyB9.0ddoEsCCtUv.B9rrdiqTh6U-1747393979-1.0.1.1-ZXcxUurcl8uI6HNVAX6saJlDnOVkuIlOTBQbgYKHzl7Tc2SNeFtayuf0.HCDKRhYaTAIMw.QTXLS1fFK6B6liF12rF1hS3bwICjMHppoeVs; + path=/; expires=Fri, 16-May-25 11:42:59 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=Nr1mHm6fztamkXrqUpm6oV0pbK0I8bsjkO1vKnZsLyY-1747393979764-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a7171fc65cbef-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Ibm5wd1hNY09YeVVYcnJ4UUpLczho + UUpvdCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3OSwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvY2xvc2VcIl1cbn0iLAogICAgICAgICJyZWZ1c2FsIjogbnVsbCwK + ICAgICAgICAiYW5ub3RhdGlvbnMiOiBbXQogICAgICB9LAogICAgICAibG9n + cHJvYnMiOiBudWxsLAogICAgICAiZmluaXNoX3JlYXNvbiI6ICJzdG9wIgog + ICAgfQogIF0sCiAgInVzYWdlIjogewogICAgInByb21wdF90b2tlbnMiOiAx + MjA4LAogICAgImNvbXBsZXRpb25fdG9rZW5zIjogMTEsCiAgICAidG90YWxf + dG9rZW5zIjogMTIxOSwKICAgICJwcm9tcHRfdG9rZW5zX2RldGFpbHMiOiB7 + CiAgICAgICJjYWNoZWRfdG9rZW5zIjogMTAyNCwKICAgICAgImF1ZGlvX3Rv + a2VucyI6IDAKICAgIH0sCiAgICAiY29tcGxldGlvbl90b2tlbnNfZGV0YWls + cyI6IHsKICAgICAgInJlYXNvbmluZ190b2tlbnMiOiAwLAogICAgICAiYXVk + aW9fdG9rZW5zIjogMCwKICAgICAgImFjY2VwdGVkX3ByZWRpY3Rpb25fdG9r + ZW5zIjogMCwKICAgICAgInJlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjog + MAogICAgfQogIH0sCiAgInNlcnZpY2VfdGllciI6ICJkZWZhdWx0IiwKICAi + c3lzdGVtX2ZpbmdlcnByaW50IjogImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:12:59 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_combine_commands_and_filters.yml b/test/vcr_cassettes/command/ai/translator_test-test_combine_commands_and_filters.yml new file mode 100644 index 000000000..c38b18647 --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_combine_commands_and_filters.yml @@ -0,0 +1,645 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + YXNzaWduIGFuZHkgdG8gdGhlIGN1cnJlbnQgI2Rlc2lnbiBjYXJkcyBhc3Np + Z25lZCB0byBqeiBhbmQgdGFnIHRoZW0gd2l0aCAjdjIifV19XSwidGVtcGVy + YXR1cmUiOjAuNywic3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:05 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '826' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '829' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198800' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 360ms + X-Request-Id: + - req_c00a65fa8d84d952eff8f85c1f14fc9c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=k3ivzszGxCR6TplulpgxbvmuuX.e6CDB0SGui1jKfhg-1747393985-1.0.1.1-_cnFXyZLJYWMMowJjMjCIwW5pLBVotCad0lBrh.UwNt0ORHqrORpgwLygCXLyLYJUZfVjng9udFZtO8nptJSCC8P.41SMFGrgssA.pilpeY; + path=/; expires=Fri, 16-May-25 11:43:05 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=j9J29_pub9Wu50oW9NoXvQsw1MCtrbQSM.8LlohcLCc-1747393985772-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a719429b9e059-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Ic3NqNlFUSFFVUkI3V2FPM1hUTmxI + T3pndCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4NCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wianpcIl0sIFwidGFnX2lkc1wiOiBb + XCJkZXNpZ25cIl0gfSxcbiAgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGFu + ZHlcIiwgXCIvdGFnICN2MlwiXVxufSIsCiAgICAgICAgInJlZnVzYWwiOiBu + dWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAgICAgIH0sCiAgICAg + ICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hfcmVhc29uIjogInN0 + b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAicHJvbXB0X3Rva2Vu + cyI6IDEyMjksCiAgICAiY29tcGxldGlvbl90b2tlbnMiOiA0MSwKICAgICJ0 + b3RhbF90b2tlbnMiOiAxMjcwLAogICAgInByb21wdF90b2tlbnNfZGV0YWls + cyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAxMTUyLAogICAgICAiYXVk + aW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0aW9uX3Rva2Vuc19k + ZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2VucyI6IDAsCiAgICAg + ICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0ZWRfcHJlZGljdGlv + bl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJlZGljdGlvbl90b2tl + bnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVyIjogImRlZmF1bHQi + LAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfOGZkNDM3MThiMyIKfQo= + recorded_at: Fri, 16 May 2025 11:13:05 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2xvc2UgY2FyZHMgYXNzaWduZWQgdG8gYW5keSBhbmQgYXNzaWduIHRoZW0g + dG8ga2V2aW4ifV19XSwidGVtcGVyYXR1cmUiOjAuNywic3RyZWFtIjpmYWxz + ZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:06 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '505' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '510' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198806' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 358ms + X-Request-Id: + - req_2688c8161adc5b120b665501f57d1627 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=swgX_NUWAnGBcty_dZQmOHF4zA3r6JWnddxm5V9LXTk-1747393986-1.0.1.1-ESU_u3km1VVupuB1jawg0TCSIsFzGIaFrAR2eU_2ACYJD8wGfaIW8jp472cQDYInEJ0oG_oYASwVrEaKd.QGFyGEOp5jzQl_bnLFQknWxtY; + path=/; expires=Fri, 16-May-25 11:43:06 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=t.puhJlE3f3GKFLP75gwwKezzLlt24iEhqMPu2v3UIg-1747393986668-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a719bcdfcf775-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IdVNieXZYdjJydkRONGVjbDFaR0k5 + TzFjTyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4NiwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSB9LFxuICBcImNvbW1h + bmRzXCI6IFtcIi9jbG9zZVwiLCBcIi9hc3NpZ24ga2V2aW5cIl1cbn0iLAog + ICAgICAgICJyZWZ1c2FsIjogbnVsbCwKICAgICAgICAiYW5ub3RhdGlvbnMi + OiBbXQogICAgICB9LAogICAgICAibG9ncHJvYnMiOiBudWxsLAogICAgICAi + ZmluaXNoX3JlYXNvbiI6ICJzdG9wIgogICAgfQogIF0sCiAgInVzYWdlIjog + ewogICAgInByb21wdF90b2tlbnMiOiAxMjIxLAogICAgImNvbXBsZXRpb25f + dG9rZW5zIjogMzAsCiAgICAidG90YWxfdG9rZW5zIjogMTI1MSwKICAgICJw + cm9tcHRfdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJjYWNoZWRfdG9rZW5z + IjogMTE1MiwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAKICAgIH0sCiAgICAi + Y29tcGxldGlvbl90b2tlbnNfZGV0YWlscyI6IHsKICAgICAgInJlYXNvbmlu + Z190b2tlbnMiOiAwLAogICAgICAiYXVkaW9fdG9rZW5zIjogMCwKICAgICAg + ImFjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMCwKICAgICAgInJlamVj + dGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMAogICAgfQogIH0sCiAgInNlcnZp + Y2VfdGllciI6ICJkZWZhdWx0IiwKICAic3lzdGVtX2ZpbmdlcnByaW50Ijog + ImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:13:06 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + YXNzaWduIGNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ24gYXNzaWduZWQgdG8g + anogdG8gYW5keSBhbmQgdGFnIHRoZW0gd2l0aCAjdjIifV19XSwidGVtcGVy + YXR1cmUiOjAuNywic3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:07 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '840' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '844' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198800' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 360ms + X-Request-Id: + - req_7141aabd4faeec96d6bef4f8642ab11d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=gxFZ77YjDcz83yzlxunygPK3Ex5c3m2_ZzjNWviLKdM-1747393987-1.0.1.1-4JbOPVWnqkfJS_oQG.ZK24pAEhvMn1r_1hQK2HwyEV_2lmdBDOP5Um0zFgTBnlkI6wiq5JFaIrPH2yyWHjw9DAjGsb_2jRxI.kaLU6i8sAo; + path=/; expires=Fri, 16-May-25 11:43:07 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=1.aFfjCx_TWazSc3GB3wmDkcZWx3oCM7jp1WXhlqCuE-1747393987850-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71a11ee52f8c-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IdVZCelZtcmtYdVN0VTFkenFsNzZo + eHFTbiIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4NiwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSwgXCJhc3NpZ25lZV9pZHNc + IjogW1wianpcIl0gfSxcbiAgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGFu + ZHlcIiwgXCIvdGFnICN2MlwiXVxufSIsCiAgICAgICAgInJlZnVzYWwiOiBu + dWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAgICAgIH0sCiAgICAg + ICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hfcmVhc29uIjogInN0 + b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAicHJvbXB0X3Rva2Vu + cyI6IDEyMjksCiAgICAiY29tcGxldGlvbl90b2tlbnMiOiA0MCwKICAgICJ0 + b3RhbF90b2tlbnMiOiAxMjY5LAogICAgInByb21wdF90b2tlbnNfZGV0YWls + cyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAxMTUyLAogICAgICAiYXVk + aW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0aW9uX3Rva2Vuc19k + ZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2VucyI6IDAsCiAgICAg + ICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0ZWRfcHJlZGljdGlv + bl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJlZGljdGlvbl90b2tl + bnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVyIjogImRlZmF1bHQi + LAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfOGZkNDM3MThiMyIKfQo= + recorded_at: Fri, 16 May 2025 11:13:07 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_filter_by_assignments.yml b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_assignments.yml new file mode 100644 index 000000000..6c0553fc0 --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_assignments.yml @@ -0,0 +1,1276 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2FyZHMgYXNzaWduZWQgdG8ganoifV19XSwidGVtcGVyYXR1cmUiOjAuNywi + c3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:50 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '372' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '376' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198813' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_6c2e3a6e3f7190248bf006f68ff2ac3b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=OOTeRLd0b1IgWp943rt7bB9Uq_Rj7MJVvj01eL1y2gU-1747393970-1.0.1.1-PjG7UfYVafu2Y1GL4rJsKdY1tL4SCbF7HNWsumk70d8AJZ0jFlcEXGhqP7fK_.wHwVyqX6m1lL9eRdj3V7M.zt3Kz.VKMjpvczv8P8fmU40; + path=/; expires=Fri, 16-May-25 11:42:50 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=mo5lCPDIElJEDtVthofDhHZ09jACb7KIq_wX8xRS.S4-1747393970512-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a7137a9f68680-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IZXA5WTgyT3lUQ2xVa25VenNZU2tM + UnVjbCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3MCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wianpcIl0gfVxufSIsCiAgICAgICAg + InJlZnVzYWwiOiBudWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAg + ICAgIH0sCiAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hf + cmVhc29uIjogInN0b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAi + cHJvbXB0X3Rva2VucyI6IDEyMTQsCiAgICAiY29tcGxldGlvbl90b2tlbnMi + OiAxNywKICAgICJ0b3RhbF90b2tlbnMiOiAxMjMxLAogICAgInByb21wdF90 + b2tlbnNfZGV0YWlscyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAxMTUy + LAogICAgICAiYXVkaW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0 + aW9uX3Rva2Vuc19kZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2Vu + cyI6IDAsCiAgICAgICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0 + ZWRfcHJlZGljdGlvbl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJl + ZGljdGlvbl90b2tlbnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVy + IjogImRlZmF1bHQiLAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfOGZk + NDM3MThiMyIKfQo= + recorded_at: Fri, 16 May 2025 11:12:50 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + YXNzaWduZWQgdG8ganoifV19XSwidGVtcGVyYXR1cmUiOjAuNywic3RyZWFt + IjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:51 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '467' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '475' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198815' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_b37c90044e05270bab7fa94b6b9a1c1a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=YwMShtuRYWwORU5QxWFx0oZ5IqtNAPpn1rHkEquHsqE-1747393971-1.0.1.1-g_qGBRHA_3rlWFZMONO6LEjPMPhUhWuYYiQMeipCk1GKxjU33kclW6lorEamC99Y14kuO1uCebukYDp2lDUiSocas.sNfrDIoSiUOpAfrC8; + path=/; expires=Fri, 16-May-25 11:42:51 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=cL3YVNDzuTtNTxfG6LDxxdBYGRp1cgBSGTzG7drTfx8-1747393971329-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a713c1e210424-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IZVhBRjdCSndFQzVIVks2S09jN2Mx + Vnh5cyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3MCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wianpcIl0gfVxufSIsCiAgICAgICAg + InJlZnVzYWwiOiBudWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAg + ICAgIH0sCiAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hf + cmVhc29uIjogInN0b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAi + cHJvbXB0X3Rva2VucyI6IDEyMTMsCiAgICAiY29tcGxldGlvbl90b2tlbnMi + OiAxNywKICAgICJ0b3RhbF90b2tlbnMiOiAxMjMwLAogICAgInByb21wdF90 + b2tlbnNfZGV0YWlscyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAwLAog + ICAgICAiYXVkaW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0aW9u + X3Rva2Vuc19kZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2VucyI6 + IDAsCiAgICAgICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0ZWRf + cHJlZGljdGlvbl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJlZGlj + dGlvbl90b2tlbnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVyIjog + ImRlZmF1bHQiLAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfOGZkNDM3 + MThiMyIKfQo= + recorded_at: Fri, 16 May 2025 11:12:51 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + dW5hc3NpZ25lZCBjYXJkcyJ9XX1dLCJ0ZW1wZXJhdHVyZSI6MC43LCJzdHJl + YW0iOmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:52 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '623' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '627' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198815' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_ca79cce5456b4639f700c4482b0ab599 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=JdeZbdK5u7lwXLQX3Kkc6npPwqM2fqs5ZhdhAmAtQsM-1747393972-1.0.1.1-aPWc9e0KMEFWupsd7DHz.XynWkod4sm74hhK890M8CZAsCrWIdRVgeGqmahvfEBT8FCJrBKzil2BFkZnauBnMoUvusaQSNL.bVlqDl2YWjk; + path=/; expires=Fri, 16-May-25 11:42:52 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=kSOKBhsJ53BXD1lC9LafED5qN9NsG0wMObnNToYXIWI-1747393972294-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71413f7e0284-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IZmRZa1dzRmFlZGh3Q0xESnJZUlpN + MkpMUyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3MSwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHtcbiAgICBcImFzc2lnbm1lbnRfc3RhdHVzXCI6IFwidW5hc3NpZ25lZFwi + XG4gIH1cbn0iLAogICAgICAgICJyZWZ1c2FsIjogbnVsbCwKICAgICAgICAi + YW5ub3RhdGlvbnMiOiBbXQogICAgICB9LAogICAgICAibG9ncHJvYnMiOiBu + dWxsLAogICAgICAiZmluaXNoX3JlYXNvbiI6ICJzdG9wIgogICAgfQogIF0s + CiAgInVzYWdlIjogewogICAgInByb21wdF90b2tlbnMiOiAxMjEyLAogICAg + ImNvbXBsZXRpb25fdG9rZW5zIjogMTgsCiAgICAidG90YWxfdG9rZW5zIjog + MTIzMCwKICAgICJwcm9tcHRfdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJj + YWNoZWRfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAKICAg + IH0sCiAgICAiY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyI6IHsKICAgICAg + InJlYXNvbmluZ190b2tlbnMiOiAwLAogICAgICAiYXVkaW9fdG9rZW5zIjog + MCwKICAgICAgImFjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMCwKICAg + ICAgInJlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMAogICAgfQogIH0s + CiAgInNlcnZpY2VfdGllciI6ICJkZWZhdWx0IiwKICAic3lzdGVtX2Zpbmdl + cnByaW50IjogImZwX2VlZGU4ZjBkNDUiCn0K + recorded_at: Fri, 16 May 2025 11:12:52 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + bm90IGFzc2lnbmVkIn1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVhbSI6 + ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:52 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '339' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '342' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_7bbbd772be517bd36c3638b386cdc58f + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=_auqz1nf2YP7ncHcTe7mfPj.9jTTCXHGyzA.zf6bFsw-1747393972-1.0.1.1-rVxTGRQtG2e0J6_R7tSkmfskGaBq3fQoixLdbXjsLhpGCvxk0SmZtKHbbsSCI_osyIIUgSrT3OwjDxeZ9UUYzhAd0zzpx17SVqm.DSXdzyg; + path=/; expires=Fri, 16-May-25 11:42:52 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=osWoy1N5Ld6NdHn6HRjKBRUmqu4Wh0.fKaraj8dXz9c-1747393972975-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71473a92384c-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IZ0dvV2dROVBXdzFCd1NYZmV2bzJ6 + SEFmbyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3MiwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJhc3NpZ25tZW50X3N0YXR1c1wiOiBcInVuYXNzaWduZWRcIiB9XG59 + IiwKICAgICAgICAicmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRp + b25zIjogW10KICAgICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAg + ICAgImZpbmlzaF9yZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2Fn + ZSI6IHsKICAgICJwcm9tcHRfdG9rZW5zIjogMTIxMSwKICAgICJjb21wbGV0 + aW9uX3Rva2VucyI6IDE3LAogICAgInRvdGFsX3Rva2VucyI6IDEyMjgsCiAg + ICAicHJvbXB0X3Rva2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rv + a2VucyI6IDExNTIsCiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAog + ICAgImNvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFz + b25pbmdfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAg + ICAgICJhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJy + ZWplY3RlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJz + ZXJ2aWNlX3RpZXIiOiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmlu + dCI6ICJmcF84ZmQ0MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:12:52 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2FyZHMgYWJvdXQgcGVyZm9ybWFuY2UgYXNzaWduZWQgdG8gam9yZ2UifV19 + XSwidGVtcGVyYXR1cmUiOjAuNywic3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:53 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '590' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '595' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198808' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 357ms + X-Request-Id: + - req_5d5358bc816f46b1e675e51cc731e402 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=efeX3AhMDq87DPAv7f.69tsRiYXfPpqlL6LzU8ZRHM8-1747393973-1.0.1.1-Tl7_vrwxp.OdhSypyv2iTHGVl05OjYGjES7PC27bHyWOpFieOx94hISvZ2x7IZdR3BIBFAq.rUjp_Y3jf6RI2VmHLAWo3Q_kCKISMYVoViw; + path=/; expires=Fri, 16-May-25 11:42:53 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=G8kGMquPnZs4gqCGuCEdqdPBVVlno02Fs10Rmws2gjM-1747393973911-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a714b7d14ecaa-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IaGZBQ0RtSTdTNndyakhQWVBkc3dq + RDFlVyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3MywKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHtcbiAgICBcImFzc2lnbmVlX2lkc1wiOiBbXCJqb3JnZVwiXSxcbiAgICBc + InRlcm1zXCI6IFtcInBlcmZvcm1hbmNlXCJdXG4gIH0sXG4gIFwiY29tbWFu + ZHNcIjogW11cbn0iLAogICAgICAgICJyZWZ1c2FsIjogbnVsbCwKICAgICAg + ICAiYW5ub3RhdGlvbnMiOiBbXQogICAgICB9LAogICAgICAibG9ncHJvYnMi + OiBudWxsLAogICAgICAiZmluaXNoX3JlYXNvbiI6ICJzdG9wIgogICAgfQog + IF0sCiAgInVzYWdlIjogewogICAgInByb21wdF90b2tlbnMiOiAxMjE2LAog + ICAgImNvbXBsZXRpb25fdG9rZW5zIjogMzEsCiAgICAidG90YWxfdG9rZW5z + IjogMTI0NywKICAgICJwcm9tcHRfdG9rZW5zX2RldGFpbHMiOiB7CiAgICAg + ICJjYWNoZWRfdG9rZW5zIjogMTE1MiwKICAgICAgImF1ZGlvX3Rva2VucyI6 + IDAKICAgIH0sCiAgICAiY29tcGxldGlvbl90b2tlbnNfZGV0YWlscyI6IHsK + ICAgICAgInJlYXNvbmluZ190b2tlbnMiOiAwLAogICAgICAiYXVkaW9fdG9r + ZW5zIjogMCwKICAgICAgImFjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjog + MCwKICAgICAgInJlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMAogICAg + fQogIH0sCiAgInNlcnZpY2VfdGllciI6ICJkZWZhdWx0IiwKICAic3lzdGVt + X2ZpbmdlcnByaW50IjogImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:12:53 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSBpbnNpZGUgYSBjYXJkIH0uXG4ifV19LHsicm9sZSI6InVzZXIi + LCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJjYXJkcyBhc3Np + Z25lZCB0byBqeiJ9XX1dLCJ0ZW1wZXJhdHVyZSI6MC43LCJzdHJlYW0iOmZh + bHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:55 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '943' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '947' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_775e7ff3c4a868f39763aaf352de021d + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=Kty2_cOfPFaXJ3QQxpE83Lolu124dW652EfW8jBxIiQ-1747393975-1.0.1.1-31.2V00DKo5lYN4qosBnIW2KmBDGf6zdRm_Up4PBIpKHPjEf659kGRjlU4OjnLL8pL.XMghnlSHBcG_RXxr9K51AzqKH_tMJ38KUAKvzAqc; + path=/; expires=Fri, 16-May-25 11:42:55 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=11N4ILlCVM5Mq.OKDL5XSba1wNPRphXLnF2ior7aQWI-1747393975186-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71514f39384c-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IaXBoR3NzZXJqMmRVSzVCclNWN0s0 + bVNvUyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk3NCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wianpcIl0gfVxufSIsCiAgICAgICAg + InJlZnVzYWwiOiBudWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAg + ICAgIH0sCiAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hf + cmVhc29uIjogInN0b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAi + cHJvbXB0X3Rva2VucyI6IDEyMTIsCiAgICAiY29tcGxldGlvbl90b2tlbnMi + OiAxNywKICAgICJ0b3RhbF90b2tlbnMiOiAxMjI5LAogICAgInByb21wdF90 + b2tlbnNfZGV0YWlscyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAxMDI0 + LAogICAgICAiYXVkaW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0 + aW9uX3Rva2Vuc19kZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2Vu + cyI6IDAsCiAgICAgICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0 + ZWRfcHJlZGljdGlvbl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJl + ZGljdGlvbl90b2tlbnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVy + IjogImRlZmF1bHQiLAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfZWVk + ZThmMGQ0NSIKfQo= + recorded_at: Fri, 16 May 2025 11:12:55 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_filter_by_collection.yml b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_collection.yml new file mode 100644 index 000000000..709a4cc24 --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_collection.yml @@ -0,0 +1,427 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + d3JpdGVib29rIGNvbGxlY3Rpb24ifV19XSwidGVtcGVyYXR1cmUiOjAuNywi + c3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:17:04 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '374' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '378' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198813' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_6eb6894b9cb9bc78c317ceb7438ecb97 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=7W9caWhAXd2OB.PTcFqnsizqK1sjMKEYrYNbU9TocaQ-1747394224-1.0.1.1-GQ48qA5ezdtrct7oX.zmxOKMXN8L8jVbjMNZ3QVLuIQWZxte15bu5fZnS1HVkp2jx7ac82E8t1JHYXt2VBekpEyHg_4qDAlI07hwPxN9TNo; + path=/; expires=Fri, 16-May-25 11:47:04 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=JCEMCJrG_RR2UqviraFud0UD5ZKx0LaMpiMT8FHE0w8-1747394224756-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a7767a94af767-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5MalNqM0hQd0ZsVXlST3BjYkNLVDFk + dFdjMCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5NDIyMywKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJjb2xsZWN0aW9uX2lkc1wiOiBbXCJ3cml0ZWJvb2tcIl0gfVxufSIs + CiAgICAgICAgInJlZnVzYWwiOiBudWxsLAogICAgICAgICJhbm5vdGF0aW9u + cyI6IFtdCiAgICAgIH0sCiAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAg + ICJmaW5pc2hfcmVhc29uIjogInN0b3AiCiAgICB9CiAgXSwKICAidXNhZ2Ui + OiB7CiAgICAicHJvbXB0X3Rva2VucyI6IDEyMTIsCiAgICAiY29tcGxldGlv + bl90b2tlbnMiOiAxNiwKICAgICJ0b3RhbF90b2tlbnMiOiAxMjI4LAogICAg + InByb21wdF90b2tlbnNfZGV0YWlscyI6IHsKICAgICAgImNhY2hlZF90b2tl + bnMiOiAwLAogICAgICAiYXVkaW9fdG9rZW5zIjogMAogICAgfSwKICAgICJj + b21wbGV0aW9uX3Rva2Vuc19kZXRhaWxzIjogewogICAgICAicmVhc29uaW5n + X3Rva2VucyI6IDAsCiAgICAgICJhdWRpb190b2tlbnMiOiAwLAogICAgICAi + YWNjZXB0ZWRfcHJlZGljdGlvbl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0 + ZWRfcHJlZGljdGlvbl90b2tlbnMiOiAwCiAgICB9CiAgfSwKICAic2Vydmlj + ZV90aWVyIjogImRlZmF1bHQiLAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAi + ZnBfOGZkNDM3MThiMyIKfQo= + recorded_at: Fri, 16 May 2025 11:17:04 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2xvc2VkIGNhcmRzIGluIHdyaXRlYm9vayJ9XX1dLCJ0ZW1wZXJhdHVyZSI6 + MC43LCJzdHJlYW0iOmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:17:05 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '373' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '377' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198812' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 356ms + X-Request-Id: + - req_83ca124733f8f3f76dc78077622d1a7a + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=mxyK9hDBqqiBHGqsPfNtl9l6dvMYwlf6K7XIjd6i5_I-1747394225-1.0.1.1-1ocdyFnXlDbmeHuViWjDNbNl1gZXa7h9A.OVTUt3g42rynigb5AYgVVnqCCue0gMLwQpo3zsr5.67dB.AlZv3OlDiE7WjFat2H8T9FXCdiw; + path=/; expires=Fri, 16-May-25 11:47:05 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=42cGKzRch_dJlM9bbsqUqFDpijKT4pbOv8MV8MYazPM-1747394225469-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a77711b44e081-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Ma3RPZmtmYkROMmtJTnhQS1ROUEZ5 + T2VYSyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5NDIyNCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJpbmRleGVkX2J5XCI6IFwiY2xvc2VkXCIgfVxufSIsCiAgICAgICAg + InJlZnVzYWwiOiBudWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAg + ICAgIH0sCiAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hf + cmVhc29uIjogInN0b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAi + cHJvbXB0X3Rva2VucyI6IDEyMTQsCiAgICAiY29tcGxldGlvbl90b2tlbnMi + OiAxNiwKICAgICJ0b3RhbF90b2tlbnMiOiAxMjMwLAogICAgInByb21wdF90 + b2tlbnNfZGV0YWlscyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAxMTUy + LAogICAgICAiYXVkaW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0 + aW9uX3Rva2Vuc19kZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2Vu + cyI6IDAsCiAgICAgICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0 + ZWRfcHJlZGljdGlvbl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJl + ZGljdGlvbl90b2tlbnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVy + IjogImRlZmF1bHQiLAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfOGZk + NDM3MThiMyIKfQo= + recorded_at: Fri, 16 May 2025 11:17:05 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_filter_by_indexed_by.yml b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_indexed_by.yml new file mode 100644 index 000000000..a7dbba0ff --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_indexed_by.yml @@ -0,0 +1,1063 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2xvc2VkIGNhcmRzIn1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVhbSI6 + ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:00 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '491' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '495' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_7bce092ef4c99c125ed428f0fc53cfec + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=JXulpsaseCx9tDrjTYr6GNuldqssqZZzsyhc2z4Bnm4-1747393980-1.0.1.1-rXSySXsOglugswcSfIBLqpcGfwAMyp8UGjO111p07jMnaCfMYVjTqgOSugY2plPNunSM1kLjlY9WTSFSqBmvlgLqCSpfvQQXlmEneJOxuRM; + path=/; expires=Fri, 16-May-25 11:43:00 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=9o4u8k707DGhAwCQk3R6OrolcmlR4jn7e4kQNqV9eRg-1747393980654-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a717639f1013f-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Ib2FkZGJabjgyRUY3emJqVFVORmxE + WWJ2SCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4MCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHtcbiAgICBcImluZGV4ZWRfYnlcIjogXCJjbG9zZWRcIlxuICB9XG59IiwK + ICAgICAgICAicmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25z + IjogW10KICAgICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAg + ImZpbmlzaF9yZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6 + IHsKICAgICJwcm9tcHRfdG9rZW5zIjogMTIxMSwKICAgICJjb21wbGV0aW9u + X3Rva2VucyI6IDE4LAogICAgInRvdGFsX3Rva2VucyI6IDEyMjksCiAgICAi + cHJvbXB0X3Rva2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2Vu + cyI6IDExNTIsCiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAg + ImNvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25p + bmdfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAg + ICJhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWpl + Y3RlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2 + aWNlX3RpZXIiOiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6 + ICJmcF84ZmQ0MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:13:00 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y29tcGxldGVkIGNhcmRzIn1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVh + bSI6ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:01 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '366' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '370' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198815' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_72b595b5d6d28d3436efecb860b980bb + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=nEYGYyToosYukKxcNJ2ZkCaAqyjM_MRuNF_2e6RWBH0-1747393981-1.0.1.1-7KGNBTO5yhRU2rdg3HGMphrjqx1gAkS9PkXW.FFTKJb3FnKijJK.AKNIEwpofMWQJi821U5bvG0wUgdOkTskxGgMBzk8JlCeqkS6EsmNE7M; + path=/; expires=Fri, 16-May-25 11:43:01 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=pa73W2QmiGnNOAPQVaUDHKf9fTkAGzo4PMs_pq7pVnU-1747393981344-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a717b7a3903d1-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Ib3ZlMHFKWjRxRDFndkRGMU5WbGw0 + RmdScCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4MCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJpbmRleGVkX2J5XCI6IFwiY2xvc2VkXCIgfVxufSIsCiAgICAgICAg + InJlZnVzYWwiOiBudWxsLAogICAgICAgICJhbm5vdGF0aW9ucyI6IFtdCiAg + ICAgIH0sCiAgICAgICJsb2dwcm9icyI6IG51bGwsCiAgICAgICJmaW5pc2hf + cmVhc29uIjogInN0b3AiCiAgICB9CiAgXSwKICAidXNhZ2UiOiB7CiAgICAi + cHJvbXB0X3Rva2VucyI6IDEyMTEsCiAgICAiY29tcGxldGlvbl90b2tlbnMi + OiAxNSwKICAgICJ0b3RhbF90b2tlbnMiOiAxMjI2LAogICAgInByb21wdF90 + b2tlbnNfZGV0YWlscyI6IHsKICAgICAgImNhY2hlZF90b2tlbnMiOiAxMDI0 + LAogICAgICAiYXVkaW9fdG9rZW5zIjogMAogICAgfSwKICAgICJjb21wbGV0 + aW9uX3Rva2Vuc19kZXRhaWxzIjogewogICAgICAicmVhc29uaW5nX3Rva2Vu + cyI6IDAsCiAgICAgICJhdWRpb190b2tlbnMiOiAwLAogICAgICAiYWNjZXB0 + ZWRfcHJlZGljdGlvbl90b2tlbnMiOiAwLAogICAgICAicmVqZWN0ZWRfcHJl + ZGljdGlvbl90b2tlbnMiOiAwCiAgICB9CiAgfSwKICAic2VydmljZV90aWVy + IjogImRlZmF1bHQiLAogICJzeXN0ZW1fZmluZ2VycHJpbnQiOiAiZnBfOGZk + NDM3MThiMyIKfQo= + recorded_at: Fri, 16 May 2025 11:13:01 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y29tcGxldGVkIn1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVhbSI6ZmFs + c2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:02 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '528' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '532' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 354ms + X-Request-Id: + - req_30a69fb9beef1a0fda56359e68918372 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=_qH5d_Z8QdpFapE5xHPwfeV3NN6bl_6m_uX_SLWW83s-1747393982-1.0.1.1-rb.05f8AeI8NfwlUuK3KeobUky08SX1IeaU4QjtcLfFmTlQgytWr.bnHNlTUuk4Zs1DXVCgJur_i2MmCxrmdnsrF5CrZ72hWJHZXyOXmvDM; + path=/; expires=Fri, 16-May-25 11:43:02 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=61K2qDKf5YZeHpYN4JVwye7fhmgno8clyCk92vtNo1I-1747393982406-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71810fc3eca6-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IcHBJdkVYTXN2NUlXVENucEQzalEx + WmtnayIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4MSwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHtcbiAgICBcImluZGV4ZWRfYnlcIjogXCJjbG9zZWRcIlxuICB9XG59IiwK + ICAgICAgICAicmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25z + IjogW10KICAgICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAg + ImZpbmlzaF9yZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6 + IHsKICAgICJwcm9tcHRfdG9rZW5zIjogMTIxMCwKICAgICJjb21wbGV0aW9u + X3Rva2VucyI6IDE3LAogICAgInRvdGFsX3Rva2VucyI6IDEyMjcsCiAgICAi + cHJvbXB0X3Rva2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2Vu + cyI6IDExNTIsCiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAg + ImNvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25p + bmdfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAg + ICJhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWpl + Y3RlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2 + aWNlX3RpZXIiOiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6 + ICJmcF9lZWRlOGYwZDQ1Igp9Cg== + recorded_at: Fri, 16 May 2025 11:13:02 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + cmVjZW50IGNhcmRzIn1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVhbSI6 + ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:03 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '491' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '497' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_7121f7cde57068a63e09dadd69c2aea2 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=_56hUA.CyyQf1J09NCfwhqEcaKc8._Z0mDhJT4okfLk-1747393983-1.0.1.1-FU4hQFyIv46fKXMj.70Y0TxGFT827a4FUhfGNDXDkuorSm7mMmr1fw4jXCaXIFDcmmBf7zjmkK_mK2WOIhF26bDJ2bN6n0.cLT_PcsISJhU; + path=/; expires=Fri, 16-May-25 11:43:03 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=IzQ8Q35j_NNNmXHx3x4WVyThBLEhUjA7LXfTaMadaQI-1747393983263-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71868f36214b-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IcThTaUdzamlxTDk0WThXd25xNTJK + c0FiQyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4MiwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHtcbiAgICBcImluZGV4ZWRfYnlcIjogXCJuZXdlc3RcIlxuICB9XG59IiwK + ICAgICAgICAicmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25z + IjogW10KICAgICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAg + ImZpbmlzaF9yZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6 + IHsKICAgICJwcm9tcHRfdG9rZW5zIjogMTIxMSwKICAgICJjb21wbGV0aW9u + X3Rva2VucyI6IDE5LAogICAgInRvdGFsX3Rva2VucyI6IDEyMzAsCiAgICAi + cHJvbXB0X3Rva2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2Vu + cyI6IDExNTIsCiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAg + ImNvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25p + bmdfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAg + ICJhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWpl + Y3RlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2 + aWNlX3RpZXIiOiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6 + ICJmcF84ZmQ0MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:13:03 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHkifV19XSwidGVtcGVyYXR1cmUi + OjAuNywic3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:04 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '470' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '475' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198812' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 356ms + X-Request-Id: + - req_218fa843a69250307696dede49d52c8b + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=v8ghMlfxF437YlztZ4VMDad5O2DUJ0mKUzmhDipsF2Q-1747393984-1.0.1.1-OAd.O8Fd1kt79Pxcq9NoGnW07.NBAKfNUEpyu7qUR48NmavTZst3Bwjwg.2WT00bIvU6zKespVBL9.jP0SeGdGt700iK7Srnfs5jo714q8k; + path=/; expires=Fri, 16-May-25 11:43:04 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=4d7MK9.yKfbFLTPoJVdz_FeuATBOaJBpmIWI0yUhWIE-1747393984330-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a718d6dbcf771-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IcmJZQzZpSkU4UHB4N2EwOGRNZG1u + Y3FiYSIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4MywKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHtcbiAgICBcImluZGV4ZWRfYnlcIjogXCJsYXRlc3RcIlxuICB9XG59IiwK + ICAgICAgICAicmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25z + IjogW10KICAgICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAg + ImZpbmlzaF9yZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6 + IHsKICAgICJwcm9tcHRfdG9rZW5zIjogMTIxMywKICAgICJjb21wbGV0aW9u + X3Rva2VucyI6IDE4LAogICAgInRvdGFsX3Rva2VucyI6IDEyMzEsCiAgICAi + cHJvbXB0X3Rva2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2Vu + cyI6IDExNTIsCiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAg + ImNvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25p + bmdfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAg + ICJhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWpl + Y3RlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2 + aWNlX3RpZXIiOiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6 + ICJmcF84ZmQ0MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:13:04 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_filter_by_tag.yml b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_tag.yml new file mode 100644 index 000000000..c8ee0e3a0 --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_filter_by_tag.yml @@ -0,0 +1,851 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2FyZHMgdGFnZ2VkIHdpdGggZGVzaWduIn1dfV0sInRlbXBlcmF0dXJlIjow + LjcsInN0cmVhbSI6ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:08 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '417' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '421' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198812' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 356ms + X-Request-Id: + - req_0a275d23e2717550f7ef96a1a176f5fa + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=PHm55LGOi8vJeuR8YWiaSVsgVCKaG4BP.1JF2mgzF1M-1747393988-1.0.1.1-8LnlOLb9QZO.UqaQky2XyepVixHqACpRdYfEIEBdYBzV0kJYU3gp0GHKMKmXxBUA3IFX7bK3ZFsNTYZEj0TVq9Yic89WrxpWhHxs3YY7qK8; + path=/; expires=Fri, 16-May-25 11:43:08 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=57.sjcAHSoiFzZb2k36ewhXbcK7R8F704N.opCePiYY-1747393988605-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71a87edaf783-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Id1ZDamVKYWhOQldKM2YxSG5uVGRK + Zk43eSIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4OCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9XG59IiwKICAgICAgICAi + cmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25zIjogW10KICAg + ICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAgImZpbmlzaF9y + ZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6IHsKICAgICJw + cm9tcHRfdG9rZW5zIjogMTIxMywKICAgICJjb21wbGV0aW9uX3Rva2VucyI6 + IDE2LAogICAgInRvdGFsX3Rva2VucyI6IDEyMjksCiAgICAicHJvbXB0X3Rv + a2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2VucyI6IDExNTIs + CiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAgImNvbXBsZXRp + b25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25pbmdfdG9rZW5z + IjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAgICJhY2NlcHRl + ZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWplY3RlZF9wcmVk + aWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2aWNlX3RpZXIi + OiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6ICJmcF84ZmQ0 + MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:13:08 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiJ9XX1dLCJ0ZW1wZXJhdHVyZSI6 + MC43LCJzdHJlYW0iOmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:09 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '392' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '398' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198812' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 356ms + X-Request-Id: + - req_28f08bc611054751e7b3fd4417439740 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=pgSgDOZRMtEPr1gs0bcpKA29zvNN7yOsWiv0PI6xBHs-1747393989-1.0.1.1-YP0KFdiDfpMELWNqink8ezPiXKHZVU3j43OtBZNaNzLTIn5i3hay_j424v8wKQn5VKlL7gYhHB4hfc_P1v8Lu3z.0hSFUR.BZ70Z5ZRnyNY; + path=/; expires=Fri, 16-May-25 11:43:09 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=F4zsrJYBVoeM3c7pZpBmefy7Pm_lAv11ePbxtOmaoEE-1747393989354-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71ad2ff55e24-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5Id1Fwdk54ZE1jenpGbmF6MGNhcnZK + S3RscCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4OCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9XG59IiwKICAgICAgICAi + cmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25zIjogW10KICAg + ICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAgImZpbmlzaF9y + ZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6IHsKICAgICJw + cm9tcHRfdG9rZW5zIjogMTIxNCwKICAgICJjb21wbGV0aW9uX3Rva2VucyI6 + IDE2LAogICAgInRvdGFsX3Rva2VucyI6IDEyMzAsCiAgICAicHJvbXB0X3Rv + a2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2VucyI6IDExNTIs + CiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAgImNvbXBsZXRp + b25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25pbmdfdG9rZW5z + IjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAgICJhY2NlcHRl + ZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWplY3RlZF9wcmVk + aWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2aWNlX3RpZXIi + OiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6ICJmcF84ZmQ0 + MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:13:09 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + I2Rlc2lnbiBjYXJkcyJ9XX1dLCJ0ZW1wZXJhdHVyZSI6MC43LCJzdHJlYW0i + OmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:10 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '306' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '310' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_efa79f62554f4b3fa8a3a6d6fd608957 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=G41DZnX1SKLjm5EnVdYfXFeabw4vnbfyU5wgsX4XnRM-1747393990-1.0.1.1-hjyZ6OLojD7v9XxLxSNylWsHFAK9EUtncECiJ6tDSMgmnOsGWt2K1bPdLK1fcaOvslwvLxwK9I_EvVR8HmpfT80mGncz62StbzaIq4u1xXo; + path=/; expires=Fri, 16-May-25 11:43:10 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=2ZclVuZP5yzzMNH1mS41fSumxMM87oX9i2t_SxlYAXs-1747393990003-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71b1daec033e-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IeFRDVlNrRDNLNXZvUm5peVdycHo2 + NGhFMiIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk4OSwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHtcbiAgICBcInRhZ19pZHNcIjogW1wiZGVzaWduXCJdXG4gIH1cbn0iLAog + ICAgICAgICJyZWZ1c2FsIjogbnVsbCwKICAgICAgICAiYW5ub3RhdGlvbnMi + OiBbXQogICAgICB9LAogICAgICAibG9ncHJvYnMiOiBudWxsLAogICAgICAi + ZmluaXNoX3JlYXNvbiI6ICJzdG9wIgogICAgfQogIF0sCiAgInVzYWdlIjog + ewogICAgInByb21wdF90b2tlbnMiOiAxMjEyLAogICAgImNvbXBsZXRpb25f + dG9rZW5zIjogMTgsCiAgICAidG90YWxfdG9rZW5zIjogMTIzMCwKICAgICJw + cm9tcHRfdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJjYWNoZWRfdG9rZW5z + IjogMTE1MiwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAKICAgIH0sCiAgICAi + Y29tcGxldGlvbl90b2tlbnNfZGV0YWlscyI6IHsKICAgICAgInJlYXNvbmlu + Z190b2tlbnMiOiAwLAogICAgICAiYXVkaW9fdG9rZW5zIjogMCwKICAgICAg + ImFjY2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMCwKICAgICAgInJlamVj + dGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMAogICAgfQogIH0sCiAgInNlcnZp + Y2VfdGllciI6ICJkZWZhdWx0IiwKICAic3lzdGVtX2ZpbmdlcnByaW50Ijog + ImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:13:09 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + Y2FyZHMgdGFnZ2VkIHdpdGggZGVzaWduIn1dfV0sInRlbXBlcmF0dXJlIjow + LjcsInN0cmVhbSI6ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:10 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '384' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '389' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198812' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 356ms + X-Request-Id: + - req_1098a34431de1fa32b1ecd597483899c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=G0ZOjPJG05uRbHhfkhMFLpTfK0hsFvYpxWfCDVzLXUM-1747393990-1.0.1.1-uKDD6k5OWZj4wBfMZLVxjoZH8HFFEGRE.EuuzNkcMc7w6tfqR1DpnnIq.UJklrl4eaueEY4ZaROxEqkmCTCpz_Xp2Gd2dWdmZIxsLVxVdvY; + path=/; expires=Fri, 16-May-25 11:43:10 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=63hlcEVUXevmPGzm_n2OqD.D3i003FzLUkdEvFYdenw-1747393990715-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71b5eccb04ae-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IeUUwcUNocldPMnJTa2N0NjNBcXhS + bmU2cyIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk5MCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb250ZXh0XCI6 + IHsgXCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9XG59IiwKICAgICAgICAi + cmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25zIjogW10KICAg + ICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAgImZpbmlzaF9y + ZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6IHsKICAgICJw + cm9tcHRfdG9rZW5zIjogMTIxMywKICAgICJjb21wbGV0aW9uX3Rva2VucyI6 + IDE2LAogICAgInRvdGFsX3Rva2VucyI6IDEyMjksCiAgICAicHJvbXB0X3Rv + a2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2VucyI6IDExNTIs + CiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAgImNvbXBsZXRp + b25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25pbmdfdG9rZW5z + IjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAgICJhY2NlcHRl + ZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWplY3RlZF9wcmVk + aWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2aWNlX3RpZXIi + OiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6ICJmcF84ZmQ0 + MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:13:10 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_getting_insight_on_cards.yml b/test/vcr_cassettes/command/ai/translator_test-test_getting_insight_on_cards.yml new file mode 100644 index 000000000..87498ad96 --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_getting_insight_on_cards.yml @@ -0,0 +1,851 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSBpbnNpZGUgYSBjYXJkIH0uXG4ifV19LHsicm9sZSI6InVzZXIi + LCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJzdW1tYXJpemUi + fV19XSwidGVtcGVyYXR1cmUiOjAuNywic3RyZWFtIjpmYWxzZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:48 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '405' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '410' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198818' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 354ms + X-Request-Id: + - req_a3f9f7aa70095474cb9436753c46580c + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=uHD.AeSRx7nPVB0_8p8FVjYpTpVDdHvL29lZtpS1GNw-1747394028-1.0.1.1-tONvW8MH_44HZo4oIeQAG3pXsNPJ7RC0pOY_GsgE2TQnig6lvXCbgDopEJVXARBw5aEyv8pBwN7UEpH7Yvq0jjM8mxzmcaAQ4ybcts9XhMI; + path=/; expires=Fri, 16-May-25 11:43:48 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=PzptJ2TXwcCWXUl6DNpvfxMCQAz7oCowX8cST9Nae1k-1747394028563-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a72a24bfecfae-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5JYWNENkNCUEpzaUVQWnl1Z0xONWJo + bjRPQSIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5NDAyOCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvaW5zaWdodCBzdW1tYXJpemVcIl1cbn0iLAogICAgICAgICJyZWZ1 + c2FsIjogbnVsbCwKICAgICAgICAiYW5ub3RhdGlvbnMiOiBbXQogICAgICB9 + LAogICAgICAibG9ncHJvYnMiOiBudWxsLAogICAgICAiZmluaXNoX3JlYXNv + biI6ICJzdG9wIgogICAgfQogIF0sCiAgInVzYWdlIjogewogICAgInByb21w + dF90b2tlbnMiOiAxMjEwLAogICAgImNvbXBsZXRpb25fdG9rZW5zIjogMTMs + CiAgICAidG90YWxfdG9rZW5zIjogMTIyMywKICAgICJwcm9tcHRfdG9rZW5z + X2RldGFpbHMiOiB7CiAgICAgICJjYWNoZWRfdG9rZW5zIjogMTE1MiwKICAg + ICAgImF1ZGlvX3Rva2VucyI6IDAKICAgIH0sCiAgICAiY29tcGxldGlvbl90 + b2tlbnNfZGV0YWlscyI6IHsKICAgICAgInJlYXNvbmluZ190b2tlbnMiOiAw + LAogICAgICAiYXVkaW9fdG9rZW5zIjogMCwKICAgICAgImFjY2VwdGVkX3By + ZWRpY3Rpb25fdG9rZW5zIjogMCwKICAgICAgInJlamVjdGVkX3ByZWRpY3Rp + b25fdG9rZW5zIjogMAogICAgfQogIH0sCiAgInNlcnZpY2VfdGllciI6ICJk + ZWZhdWx0IiwKICAic3lzdGVtX2ZpbmdlcnByaW50IjogImZwXzhmZDQzNzE4 + YjMiCn0K + recorded_at: Fri, 16 May 2025 11:13:48 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSBpbnNpZGUgYSBjYXJkIH0uXG4ifV19LHsicm9sZSI6InVzZXIi + LCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJzdGVwcyB0byBy + ZXByb2R1Y2UifV19XSwidGVtcGVyYXR1cmUiOjAuNywic3RyZWFtIjpmYWxz + ZX0= + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:49 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '403' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '407' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198817' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 354ms + X-Request-Id: + - req_d952ad67f20d8d87e6194ed2f5183a71 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=D.Ez7tFAXT9KqyXVDIi5YK3Tb6D5Ks2OhBlUgKK7rIw-1747394029-1.0.1.1-kZ.cWvFm7hLIz7vtaBLkzy2vzok.1iE1q.eMV1otqk6VZtjZy1PAka5GSJrv7S6uWdDmLXZofndmF9zqmdh42Ht34qdpF_Cx_Lcjgae8jD8; + path=/; expires=Fri, 16-May-25 11:43:49 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=LzpmfDc3KKBSKB1ORpfC9jUom1fjoMhFXJTWifkdfzM-1747394029358-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a72a74c988672-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5JYXEzRDFGWVhVQndmRjZzaFJqclhT + OUFVOCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5NDAyOCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvaW5zaWdodCBzdGVwcyB0byByZXByb2R1Y2VcIl1cbn0iLAogICAg + ICAgICJyZWZ1c2FsIjogbnVsbCwKICAgICAgICAiYW5ub3RhdGlvbnMiOiBb + XQogICAgICB9LAogICAgICAibG9ncHJvYnMiOiBudWxsLAogICAgICAiZmlu + aXNoX3JlYXNvbiI6ICJzdG9wIgogICAgfQogIF0sCiAgInVzYWdlIjogewog + ICAgInByb21wdF90b2tlbnMiOiAxMjEwLAogICAgImNvbXBsZXRpb25fdG9r + ZW5zIjogMTQsCiAgICAidG90YWxfdG9rZW5zIjogMTIyNCwKICAgICJwcm9t + cHRfdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJjYWNoZWRfdG9rZW5zIjog + MTAyNCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAKICAgIH0sCiAgICAiY29t + cGxldGlvbl90b2tlbnNfZGV0YWlscyI6IHsKICAgICAgInJlYXNvbmluZ190 + b2tlbnMiOiAwLAogICAgICAiYXVkaW9fdG9rZW5zIjogMCwKICAgICAgImFj + Y2VwdGVkX3ByZWRpY3Rpb25fdG9rZW5zIjogMCwKICAgICAgInJlamVjdGVk + X3ByZWRpY3Rpb25fdG9rZW5zIjogMAogICAgfQogIH0sCiAgInNlcnZpY2Vf + dGllciI6ICJkZWZhdWx0IiwKICAic3lzdGVtX2ZpbmdlcnByaW50IjogImZw + XzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:13:49 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSBpbnNpZGUgYSBjYXJkIH0uXG4ifV19LHsicm9sZSI6InVzZXIi + LCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJjcmVhdGUgYSB0 + YWJsZSB3aXRoIHRoZSBtYWluIHBhcnRpY2lwYW50cyBhbmQgdGFrZWF3YXlz + In1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVhbSI6ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:50 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '585' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '588' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198807' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 357ms + X-Request-Id: + - req_9939f0c48a3a169454dbd7cfe7700264 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=wK4IrCnq6_05_LRiVyqpJ6x.w7nTCF7DnZyssq8kHfI-1747394030-1.0.1.1-Rh5UNwKmZtZgGrENK2X8T5HaSxhjdFnz2MAEhhmdTNoLtCBC61B75giY6c6w7gJJA5Dg6q9dpCcasF2WASg.QNxYLycg5zCe.VxzKrvodQo; + path=/; expires=Fri, 16-May-25 11:43:50 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=UC047p.NvTdP1syjSPkARDGdeq4rK4u63ZfEQ2Dx4Lo-1747394030310-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a72ac0851ec93-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5JYm9lUEdra2lXbGp3N1J4N0xNWktT + d2hIUSIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5NDAyOSwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvaW5zaWdodCBjcmVhdGUgYSB0YWJsZSB3aXRoIHRoZSBtYWluIHBh + cnRpY2lwYW50cyBhbmQgdGFrZWF3YXlzXCJdXG59IiwKICAgICAgICAicmVm + dXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25zIjogW10KICAgICAg + fSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAgImZpbmlzaF9yZWFz + b24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6IHsKICAgICJwcm9t + cHRfdG9rZW5zIjogMTIxNywKICAgICJjb21wbGV0aW9uX3Rva2VucyI6IDIx + LAogICAgInRvdGFsX3Rva2VucyI6IDEyMzgsCiAgICAicHJvbXB0X3Rva2Vu + c19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2VucyI6IDEwMjQsCiAg + ICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAgImNvbXBsZXRpb25f + dG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25pbmdfdG9rZW5zIjog + MCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAgICJhY2NlcHRlZF9w + cmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWplY3RlZF9wcmVkaWN0 + aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2aWNlX3RpZXIiOiAi + ZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6ICJmcF9lZWRlOGYw + ZDQ1Igp9Cg== + recorded_at: Fri, 16 May 2025 11:13:50 GMT +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSBpbnNpZGUgYSBjYXJkIH0uXG4ifV19LHsicm9sZSI6InVzZXIi + LCJjb250ZW50IjpbeyJ0eXBlIjoidGV4dCIsInRleHQiOiJ3aGF0J3MgdGhl + IGlzc3VlIGhlcmU/In1dfV0sInRlbXBlcmF0dXJlIjowLjcsInN0cmVhbSI6 + ZmFsc2V9 + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:13:51 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '388' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '393' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198816' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_857226b046dabdf9bef5a1c4ced28127 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=pF5S3om_M4AF4YiWgG64cf_FnGavUS20v83izyV0_5g-1747394031-1.0.1.1-ACCpw6v4MIwi3l2U1XJ6Hh_iS8ky8RuSiKfRUIoY2y1CzmD1N2V0nv3E0Rc.4jpdP39R8UTtuxnFwvEt8Wz90SK_Bn.Adb0Upal8c2CJ2yM; + path=/; expires=Fri, 16-May-25 11:43:51 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=2GZgqusV1j2eUyqndN8FrArgxwFUMhUhWOtTzrLv5JE-1747394031049-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a72b1d801cfe6-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5JY0FsdDVnZkhPSEtqNmliV0hzS0pM + blVGSCIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5NDAzMCwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvaW5zaWdodCB3aGF0J3MgdGhlIGlzc3VlIGhlcmU/XCJdXG59IiwK + ICAgICAgICAicmVmdXNhbCI6IG51bGwsCiAgICAgICAgImFubm90YXRpb25z + IjogW10KICAgICAgfSwKICAgICAgImxvZ3Byb2JzIjogbnVsbCwKICAgICAg + ImZpbmlzaF9yZWFzb24iOiAic3RvcCIKICAgIH0KICBdLAogICJ1c2FnZSI6 + IHsKICAgICJwcm9tcHRfdG9rZW5zIjogMTIxMywKICAgICJjb21wbGV0aW9u + X3Rva2VucyI6IDE2LAogICAgInRvdGFsX3Rva2VucyI6IDEyMjksCiAgICAi + cHJvbXB0X3Rva2Vuc19kZXRhaWxzIjogewogICAgICAiY2FjaGVkX3Rva2Vu + cyI6IDEwMjQsCiAgICAgICJhdWRpb190b2tlbnMiOiAwCiAgICB9LAogICAg + ImNvbXBsZXRpb25fdG9rZW5zX2RldGFpbHMiOiB7CiAgICAgICJyZWFzb25p + bmdfdG9rZW5zIjogMCwKICAgICAgImF1ZGlvX3Rva2VucyI6IDAsCiAgICAg + ICJhY2NlcHRlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAsCiAgICAgICJyZWpl + Y3RlZF9wcmVkaWN0aW9uX3Rva2VucyI6IDAKICAgIH0KICB9LAogICJzZXJ2 + aWNlX3RpZXIiOiAiZGVmYXVsdCIsCiAgInN5c3RlbV9maW5nZXJwcmludCI6 + ICJmcF84ZmQ0MzcxOGIzIgp9Cg== + recorded_at: Fri, 16 May 2025 11:13:50 GMT +recorded_with: VCR 6.3.1 diff --git a/test/vcr_cassettes/command/ai/translator_test-test_tag_cards.yml b/test/vcr_cassettes/command/ai/translator_test-test_tag_cards.yml new file mode 100644 index 000000000..a12f4efe6 --- /dev/null +++ b/test/vcr_cassettes/command/ai/translator_test-test_tag_cards.yml @@ -0,0 +1,214 @@ +--- +http_interactions: +- request: + method: post + uri: https://api.openai.com/v1/chat/completions + body: + encoding: UTF-8 + base64_string: | + eyJtb2RlbCI6ImdwdC00LjEtbmFubyIsIm1lc3NhZ2VzIjpbeyJyb2xlIjoi + ZGV2ZWxvcGVyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + WW91IGFyZSBGaXp6eeKAmXMgY29tbWFuZCB0cmFuc2xhdG9yLiBZb3VyIHRh + c2sgaXMgdG86XG5cbjEuIFJlYWQgdGhlIHVzZXIncyByZXF1ZXN0LlxuMi4g + Q29uc3VsdCB0aGUgY3VycmVudCBjb250ZXh0IChwcm92aWRlZCBiZWxvdyBm + b3IgaW5mb3JtYXRpb25hbCBwdXJwb3NlcyBvbmx5KS5cbjMuIERldGVybWlu + ZSBpZiB0aGUgY3VycmVudCBjb250ZXh0IHN1ZmZpY2VzIG9yIGlmIGEgbmV3 + IGNvbnRleHQgaXMgcmVxdWlyZWQuXG40LiBHZW5lcmF0ZSBvbmx5IHRoZSBu + ZWNlc3NhcnkgY29tbWFuZHMgdG8gZnVsZmlsbCB0aGUgcmVxdWVzdC5cbjUu + IE91dHB1dCBhIEpTT04gb2JqZWN0IGNvbnRhaW5pbmcgT05MWTpcblxuICAg + KiBBIFwiY29udGV4dFwiIG9iamVjdCAob25seSBpZiBhIG5ldyBmaWx0ZXJp + bmcgY29udGV4dCBpcyByZXF1aXJlZCwgc3RyaWN0bHkgZm9sbG93aW5nIGRl + ZmluZWQgcHJvcGVydGllcyBiZWxvdykuXG4gICAqIEEgXCJjb21tYW5kc1wi + IGFycmF5IChvbmx5IGlmIGNvbW1hbmRzIGFyZSBleHBsaWNpdGx5IHJlcXVl + c3RlZCBvciBjbGVhcmx5IGltcGxpZWQpLlxuXG5EbyBOT1QgYWRkIGFueSBv + dGhlciBwcm9wZXJ0aWVzIHRvIHlvdXIgSlNPTiBvdXRwdXQuXG5cblRoZSBk + ZXNjcmlwdGlvbiBvZiB0aGUgY3VycmVudCB2aWV3IChcImluc2lkZSBhIGNh + cmRcIiwgXCJ2aWV3aW5nIGEgbGlzdCBvZiBjYXJkc1wiLCBvciBcIm5vdCBz + ZWVpbmcgY2FyZHNcIikgaXMgaW5mb3JtYXRpb25hbCBvbmx5LiBEbyBOT1Qg + cmVmbGVjdCB0aGlzIGRlc2NyaXB0aW9uIGV4cGxpY2l0bHkgb3IgaW1wbGlj + aXRseSBpbiB5b3VyIG91dHB1dCBKU09OLiBORVZFUiBnZW5lcmF0ZSBwcm9w + ZXJ0aWVzIGxpa2UgXCJ2aWV3XCIgb3IgYWRkIFwidGVybXNcIiBiYXNlZCBv + biBcImNhcmRcIiBvciBcImxpc3RcIiBjb250ZXh0LlxuXG4jIyBGaXp6eSBE + YXRhIFN0cnVjdHVyZVxuXG4qICoqQ2FyZHMqKjogUmVwcmVzZW50IGlzc3Vl + cywgZmVhdHVyZXMsIGJ1Z3MsIHRhc2tzLCBvciBwcm9ibGVtcy5cbiogQ2Fy + ZHMgaGF2ZSAqKmNvbW1lbnRzKiogYW5kIGFyZSBjb250YWluZWQgd2l0aGlu + ICoqY29sbGVjdGlvbnMqKi5cblxuIyMgQ29udGV4dCBQcm9wZXJ0aWVzIGZv + ciBGaWx0ZXJpbmcgKHVzZSBleHBsaWNpdGx5KTpcblxuKiAqKnRlcm1zKio6 + IEFycmF5IG9mIGtleXdvcmRzIChzcGxpdCBpbmRpdmlkdWFsbHksIGUuZy4s + IFtcInNvbWVcIiwgXCJ0ZXJtXCJdKS4gQXZvaWQgcmVkdW5kYW5jeS5cbiog + KippbmRleGVkX2J5Kio6IFwibmV3ZXN0XCIsIFwib2xkZXN0XCIsIFwibGF0 + ZXN0XCIsIFwic3RhbGxlZFwiLCBcImNsb3NlZFwiLlxuXG4gICogXCJjbG9z + ZWRcIjogY29tcGxldGVkIGNhcmRzLlxuICAqIFwibmV3ZXN0XCI6IGJ5IGNy + ZWF0aW9uIGRhdGUsIFwibGF0ZXN0XCI6IGJ5IHVwZGF0ZSBkYXRlLlxuKiAq + KmFzc2lnbmVlX2lkcyoqOiBBcnJheSBvZiBhc3NpZ25lZSBuYW1lcy5cbiog + Kiphc3NpZ25tZW50X3N0YXR1cyoqOiBcInVuYXNzaWduZWRcIi5cbiogKipl + bmdhZ2VtZW50X3N0YXR1cyoqOiBcImNvbnNpZGVyaW5nXCIgb3IgXCJkb2lu + Z1wiLlxuKiAqKmNhcmRfaWRzKio6IEFycmF5IG9mIGNhcmQgSURzLlxuKiAq + KmNyZWF0b3JfaWQqKjogQ3JlYXRvcidzIG5hbWUuXG4qICoqY29sbGVjdGlv + bl9pZHMqKjogQXJyYXkgb2YgZXhwbGljaXRseSBtZW50aW9uZWQgY29sbGVj + dGlvbnMuXG4qICoqdGFnX2lkcyoqOiBBcnJheSBvZiB0YWcgbmFtZXMgKHVz + ZSBmb3IgXCIjdGFnXCIgb3IgXCJ0YWdnZWQgd2l0aFwiKS5cblxuIyMgRXhw + bGljaXQgRmlsdGVyaW5nIFJ1bGVzOlxuXG4qIFwiQXNzaWduZWQgdG8gWFwi + OiB1c2UgYGFzc2lnbmVlX2lkc2AuXG4qIFwiQ3JlYXRlZCBieSBYXCI6IHVz + ZSBgY3JlYXRvcl9pZGAuXG4qIFwiVGFnZ2VkIHdpdGggWFwiLCBcIiNYIGNh + cmRzXCI6IHVzZSBgdGFnX2lkc2AgKG5ldmVyIFwidGVybXNcIikuXG4gIC0g + Rm9yIGV4YW1wbGU6IFwiI2Rlc2lnbiBjYXJkc1wiIG9yIFwiY2FyZHMgdGFn + Z2VkIHdpdGggI2Rlc2lnblwiIHNob3VsZCBhbHdheXMgcmVzdWx0IGluIGB0 + YWdfaWRzOiBbXCJkZXNpZ25cIl1gLlxuKiBcIlVuYXNzaWduZWQgY2FyZHNc + IjogdXNlIGBhc3NpZ25tZW50X3N0YXR1czogXCJ1bmFzc2lnbmVkXCJgLlxu + KiBcIk15IGNhcmRzXCI6IENhcmRzIGFzc2lnbmVkIHRvIHRoZSByZXF1ZXN0 + ZXIuXG4qIFwiUmVjZW50IGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJu + ZXdlc3RcImAuXG4qIFwiQ2FyZHMgd2l0aCByZWNlbnQgYWN0aXZpdHlcIjog + dXNlIGBpbmRleGVkX2J5OiBcImxhdGVzdFwiYC5cbiogXCJDb21wbGV0ZWQv + Y2xvc2VkIGNhcmRzXCI6IHVzZSBgaW5kZXhlZF9ieTogXCJjbG9zZWRcImAu + XG4qIFVua25vd24gdGVybXM6IGRlZmF1bHQgdG8gYHRlcm1zYC5cblxuIyMg + Q29tbWFuZCBJbnRlcnByZXRhdGlvbiBSdWxlczpcblxuKiBcInRhZyB3aXRo + ICNkZXNpZ25cIjogYWx3YXlzIGAvdGFnICNkZXNpZ25gLiBEbyBOT1QgY3Jl + YXRlIGB0YWdfaWRzYCBjb250ZXh0LlxuKiBcIiNkZXNpZ24gY2FyZHNcIiBv + ciBcImNhcmRzIHRhZ2dlZCB3aXRoICNkZXNpZ25cIjogdXNlIGB0YWdfaWRz + YC5cbiogXCJBc3NpZ24gY2FyZHMgdGFnZ2VkIHdpdGggI2Rlc2lnbiB0byBq + elwiOiBmaWx0ZXIgYnkgYHRhZ19pZHNgLCBjb21tYW5kIGAvYXNzaWduIGp6 + YC4gRG8gTk9UIGdlbmVyYXRlIGAvdGFnYCBjb21tYW5kLlxuXG4jIyDimqDv + uI8gQ3J1Y2lhbCBSdWxlcyB0byBBdm9pZCBDb25mdXNpb246XG5cbiogKipD + b250ZXh0IGZpbHRlcnMqKiBhbHdheXMgcmVwcmVzZW50ICoqZXhpc3Rpbmcg + Y29uZGl0aW9ucyoqIHRoYXQgY2FyZHMgKiphbHJlYWR5IHNhdGlzZnkqKi5c + biogKipDb21tYW5kcyoqIChgL2Fzc2lnbmAsIGAvdGFnYCwgYC9jbG9zZWAp + IHJlcHJlc2VudCAqKm5ldyBhY3Rpb25zKiogdG8gYXBwbHkuXG4qICoqTkVW + RVIqKiB1c2UgbmFtZXMgb3IgdGFncyBtZW50aW9uZWQgaW4gKipjb21tYW5k + cyoqIGFzIGZpbHRlcmluZyBjcml0ZXJpYS5cblxuICAqIEUuZy46IFwiQXNz + aWduIGFuZHlcIiBtZWFucyBhICoqbmV3IGFzc2lnbm1lbnQqKiB0byBgYW5k + eWAuIERvIE5PVCBmaWx0ZXIgYnkgYGFzc2lnbmVlX2lkczogW1wiYW5keVwi + XWAuXG4gICogRS5nLjogXCJUYWcgd2l0aCAjdjJcIiBtZWFucyBhcHBseWlu + ZyBhICoqbmV3IHRhZyoqLiBEbyBOT1QgZmlsdGVyIGJ5IGB0YWdfaWRzOiBb + XCJ2MlwiXWAuXG5cbiMjIyBFeGFtcGxlcyAoc3RyaWN0bHkgZm9sbG93IHRo + ZXNlKTpcblxuVXNlciBxdWVyeTpcbmBcImFzc2lnbiBhbmR5IHRvIHRoZSBj + dXJyZW50ICNkZXNpZ24gY2FyZHMgYXNzaWduZWQgdG8ganogYW5kIHRhZyB0 + aGVtIHdpdGggI3YyXCJgXG5cbuKchSBDb3JyZWN0IE91dHB1dDpcblxue1xu + ICBcImNvbnRleHRcIjogeyBcImFzc2lnbmVlX2lkc1wiOiBbXCJqelwiXSwg + XCJ0YWdfaWRzXCI6IFtcImRlc2lnblwiXSB9LFxuICBcImNvbW1hbmRzXCI6 + IFtcIi9hc3NpZ24gYW5keVwiLCBcIi90YWcgI3YyXCJdXG59XG5cbuKdjCBJ + bmNvcnJlY3QgKERPIE5PVCBnZW5lcmF0ZSk6XG5cbntcbiAgXCJjb250ZXh0 + XCI6IHsgXCJhc3NpZ25lZV9pZHNcIjogW1wiYW5keVwiXSwgXCJ0YWdfaWRz + XCI6IFtcInYyXCJdIH0sXG4gIFwiY29tbWFuZHNcIjogW1wiL2Fzc2lnbiBh + bmR5XCIsIFwiL3RhZyAjdjJcIl1cbn1cblxuIyMgQ29tbWFuZHMgKHByZWZp + eCAnLycpOlxuXG4qIEFzc2lnbiB1c2VyOiBgL2Fzc2lnbiBbdXNlcl1gIChl + LmcuLCBgL2Fzc2lnbiBrZXZpbmApLlxuKiBDbG9zZSBjYXJkczogYC9jbG9z + ZSBbb3B0aW9uYWwgcmVhc29uXWAgKGUuZy4sIGAvY2xvc2VgLCBgL2Nsb3Nl + IG5vdCBub3dgKS5cbiogVGFnIGNhcmRzOiBgL3RhZyAjW3RhZy1uYW1lXWAg + KGUuZy4sIGAvdGFnICNkZXNpZ25gKS5cbiogQ2xlYXIgZmlsdGVyczogYC9j + bGVhcmAuXG4qIEluc2lnaHRzIChtYW5kYXRvcnkgaWYgcXVlc3Rpb24gYXNr + ZWQgb3IgZXhwbGljaXRseSByZXF1ZXN0ZWQpOiBgL2luc2lnaHQgW3F1ZXJ5 + XWAuXG4gIC0gQWx3YXlzIHVzZSBgL2luc2lnaHRgIGZvciBxdWVyaWVzIGxp + a2UgXCJzdGVwcyB0byByZXByb2R1Y2VcIiwgXCJzdW1tYXJpemVcIiwgb3Ig + c2ltaWxhciBxdWVyaWVzIHRoYXQgY2xlYXJseSByZXF1ZXN0IGluc2lnaHQg + YWJvdXQgY2FyZHMsXG4gICAgZXNwZWNpYWxseSB3aGVuIFwiaW5zaWRlIGEg + Y2FyZFwiLiBQYXNzIHRoZSBvcmlnaW5hbCBxdWVyeSBhcyB0aGUgYXJndW1l + bnQuXG5cbiMjIEpTT04gT3V0cHV0IEV4YW1wbGVzIChzdHJpY3RseSBmb2xs + b3cgdGhlc2UgcGF0dGVybnMpOlxuXG57IFwiY29udGV4dFwiOiB7IFwiYXNz + aWduZWVfaWRzXCI6IFtcImpvcmdlXCJdIH0sIFwiY29tbWFuZHNcIjogW1wi + L2Nsb3NlXCJdIH1cbnsgXCJjb250ZXh0XCI6IHsgXCJ0YWdfaWRzXCI6IFtc + ImRlc2lnblwiXSB9IH1cbnsgXCJjb21tYW5kc1wiOiBbXCIvYXNzaWduIGpv + cmdlXCIsIFwiL3RhZyAjZGVzaWduXCJdIH1cblxuT21pdCBlbXB0eSBhcnJh + eXMgb3IgdW5uZWNlc3NhcnkgcHJvcGVydGllcy4gQXQgbGVhc3Qgb25lIHBy + b3BlcnR5IChgY29udGV4dGAgb3IgYGNvbW1hbmRzYCkgbXVzdCBleGlzdC5c + blxuIyMgT3RoZXIgU3RyaWN0IEluc3RydWN0aW9uczpcblxuKiBORVZFUiBh + ZGQgcHJvcGVydGllcyBiYXNlZCBvbiB2aWV3IGRlc2NyaXB0aW9ucyAoXCJj + YXJkXCIsIFwibGlzdFwiLCBldGMuKS5cbiogQXZvaWQgcmVkdW5kYW50IHRl + cm1zLlxuKiBEb24ndCBkdXBsaWNhdGUgdGVybXMgYWNyb3NzIHByb3BlcnRp + ZXMuXG4qIEZhdm9yIGNsYXJpdHksIHByZWNpc2lvbiwgYW5kIGNvbmNpc2Vu + ZXNzLlxuVGhlIG5hbWUgb2YgdGhlIHVzZXIgbWFraW5nIHJlcXVlc3RzIGlz + IGRhdmlkLlxuXG4jIyBDdXJyZW50IHZpZXc6XG5cblRoZSB1c2VyIGlzIGN1 + cnJlbnRseSB2aWV3aW5nIGEgbGlzdCBvZiBjYXJkcyB9LlxuIn1dfSx7InJv + bGUiOiJ1c2VyIiwiY29udGVudCI6W3sidHlwZSI6InRleHQiLCJ0ZXh0Ijoi + dGFnIHdpdGggI2Rlc2lnbiJ9XX1dLCJ0ZW1wZXJhdHVyZSI6MC43LCJzdHJl + YW0iOmZhbHNlfQ== + headers: + User-Agent: + - Faraday v2.13.1 + Authorization: + - Bearer + Content-Type: + - application/json + Accept-Encoding: + - gzip;q=1.0,deflate;q=0.6,identity;q=0.3 + Accept: + - "*/*" + response: + status: + code: 200 + message: OK + headers: + Date: + - Fri, 16 May 2025 11:12:49 GMT + Content-Type: + - application/json + Transfer-Encoding: + - chunked + Connection: + - keep-alive + Access-Control-Expose-Headers: + - X-Request-ID + Openai-Organization: + - 37signals-u7qhwk + Openai-Processing-Ms: + - '345' + Openai-Version: + - '2020-10-01' + X-Envoy-Upstream-Service-Time: + - '349' + X-Ratelimit-Limit-Requests: + - '500' + X-Ratelimit-Limit-Tokens: + - '200000' + X-Ratelimit-Remaining-Requests: + - '499' + X-Ratelimit-Remaining-Tokens: + - '198815' + X-Ratelimit-Reset-Requests: + - 120ms + X-Ratelimit-Reset-Tokens: + - 355ms + X-Request-Id: + - req_54c6d91ad989bf24bbc4144c31ac6d24 + Strict-Transport-Security: + - max-age=31536000; includeSubDomains; preload + Cf-Cache-Status: + - DYNAMIC + Set-Cookie: + - __cf_bm=qhTFfK7SsPVNcvZPrgK3ZqKSZj1jUYmuSU27T7gjQgU-1747393969-1.0.1.1-mGETtL9QPVh6S1n_w1ywZ58Sq.wobXIqqGNq8Z6QHQLaGfONuE.OFS4o2DIrl87cN4ZMrqwtRX0PvGRFKCSdrSqIrUXYb4.3fAuyaXG.xno; + path=/; expires=Fri, 16-May-25 11:42:49 GMT; domain=.api.openai.com; HttpOnly; + Secure; SameSite=None + - _cfuvid=reIKZ78c2IyPaV.1EDIjT27wU3dOb5VP2F03LYfwMB0-1747393969804-0.0.1.1-604800000; + path=/; domain=.api.openai.com; HttpOnly; Secure; SameSite=None + X-Content-Type-Options: + - nosniff + Server: + - cloudflare + Cf-Ray: + - 940a71333b65026a-MAD + Alt-Svc: + - h3=":443"; ma=86400 + body: + encoding: ASCII-8BIT + base64_string: | + ewogICJpZCI6ICJjaGF0Y21wbC1CWG5IZDNoc0dtYVN3bFZpMVpWS1Boa3pG + bkF6eiIsCiAgIm9iamVjdCI6ICJjaGF0LmNvbXBsZXRpb24iLAogICJjcmVh + dGVkIjogMTc0NzM5Mzk2OSwKICAibW9kZWwiOiAiZ3B0LTQuMS1uYW5vLTIw + MjUtMDQtMTQiLAogICJjaG9pY2VzIjogWwogICAgewogICAgICAiaW5kZXgi + OiAwLAogICAgICAibWVzc2FnZSI6IHsKICAgICAgICAicm9sZSI6ICJhc3Np + c3RhbnQiLAogICAgICAgICJjb250ZW50IjogIntcbiAgXCJjb21tYW5kc1wi + OiBbXCIvdGFnICNkZXNpZ25cIl1cbn0iLAogICAgICAgICJyZWZ1c2FsIjog + bnVsbCwKICAgICAgICAiYW5ub3RhdGlvbnMiOiBbXQogICAgICB9LAogICAg + ICAibG9ncHJvYnMiOiBudWxsLAogICAgICAiZmluaXNoX3JlYXNvbiI6ICJz + dG9wIgogICAgfQogIF0sCiAgInVzYWdlIjogewogICAgInByb21wdF90b2tl + bnMiOiAxMjEzLAogICAgImNvbXBsZXRpb25fdG9rZW5zIjogMTIsCiAgICAi + dG90YWxfdG9rZW5zIjogMTIyNSwKICAgICJwcm9tcHRfdG9rZW5zX2RldGFp + bHMiOiB7CiAgICAgICJjYWNoZWRfdG9rZW5zIjogMCwKICAgICAgImF1ZGlv + X3Rva2VucyI6IDAKICAgIH0sCiAgICAiY29tcGxldGlvbl90b2tlbnNfZGV0 + YWlscyI6IHsKICAgICAgInJlYXNvbmluZ190b2tlbnMiOiAwLAogICAgICAi + YXVkaW9fdG9rZW5zIjogMCwKICAgICAgImFjY2VwdGVkX3ByZWRpY3Rpb25f + dG9rZW5zIjogMCwKICAgICAgInJlamVjdGVkX3ByZWRpY3Rpb25fdG9rZW5z + IjogMAogICAgfQogIH0sCiAgInNlcnZpY2VfdGllciI6ICJkZWZhdWx0IiwK + ICAic3lzdGVtX2ZpbmdlcnByaW50IjogImZwXzhmZDQzNzE4YjMiCn0K + recorded_at: Fri, 16 May 2025 11:12:49 GMT +recorded_with: VCR 6.3.1