Skip to content

Commit 8e056dc

Browse files
authored
Remove 60 MB of the letter 'a' from spec/fixtures/vcr_cassettes (#287)
## The majority of the installed size of the `ruby_llm` gem was simply repeats of the letter `a`. This PR uses VCR's `filter_sensitive_data` to avoid storing 60 million bytes of 'a' in `spec/fixtures/vcr_cassettes`. :joy: ## Before ``` du -s spec/fixtures 73448 spec/fixtures ls -al chat_real_error_scenarios_* 10002062 chat_real_error_scenarios_anthropic_claude-3-5-haiku-20241022_handles_context_length_exceeded_errors.yml 10002198 chat_real_error_scenarios_bedrock_anthropic_claude-3-5-haiku-20241022-v1_0_handles_context_length_exceeded_errors.yml 10001980 chat_real_error_scenarios_deepseek_deepseek-chat_handles_context_length_exceeded_errors.yml 10001862 chat_real_error_scenarios_gemini_gemini-2_0-flash_handles_context_length_exceeded_errors.yml 10002399 chat_real_error_scenarios_openai_gpt-4_1-nano_handles_context_length_exceeded_errors.yml 10002014 chat_real_error_scenarios_openrouter_anthropic_claude-3_5-haiku_handles_context_length_exceeded_errors.yml ``` ## After ``` du -s spec/fixtures 14864 spec/fixtures ls -al chat_real_error_scenarios_* 2202 chat_real_error_scenarios_anthropic_claude-3-5-haiku-20241022_handles_context_length_exceeded_errors.yml 2338 chat_real_error_scenarios_bedrock_anthropic_claude-3-5-haiku-20241022-v1_0_handles_context_length_exceeded_errors.yml 2120 chat_real_error_scenarios_deepseek_deepseek-chat_handles_context_length_exceeded_errors.yml 3207 chat_real_error_scenarios_gemini_gemini-2_0-flash_handles_context_length_exceeded_errors.yml 2539 chat_real_error_scenarios_openai_gpt-4_1-nano_handles_context_length_exceeded_errors.yml 2154 chat_real_error_scenarios_openrouter_anthropic_claude-3_5-haiku_handles_context_length_exceeded_errors.yml ```
1 parent 701d5d0 commit 8e056dc

8 files changed

+70
-38
lines changed

spec/fixtures/vcr_cassettes/chat_real_error_scenarios_anthropic_claude-3-5-haiku-20241022_handles_context_length_exceeded_errors.yml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/vcr_cassettes/chat_real_error_scenarios_bedrock_anthropic_claude-3-5-haiku-20241022-v1_0_handles_context_length_exceeded_errors.yml

Lines changed: 8 additions & 8 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/vcr_cassettes/chat_real_error_scenarios_deepseek_deepseek-chat_handles_context_length_exceeded_errors.yml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/vcr_cassettes/chat_real_error_scenarios_gemini_gemini-2_0-flash_handles_context_length_exceeded_errors.yml

Lines changed: 39 additions & 10 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/vcr_cassettes/chat_real_error_scenarios_openai_gpt-4_1-nano_handles_context_length_exceeded_errors.yml

Lines changed: 5 additions & 5 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/fixtures/vcr_cassettes/chat_real_error_scenarios_openrouter_anthropic_claude-3_5-haiku_handles_context_length_exceeded_errors.yml

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

spec/ruby_llm/chat_error_spec.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@
7373
# Configure Psych to allow large input (JRuby's ext provider SnakeYAML has a low limit by default)
7474
Psych::Parser.code_point_limit = 20_000_000 if Psych::Parser.respond_to?(:code_point_limit=)
7575

76-
# Create a huge conversation
76+
# Create a huge conversation (matching <MASSIVE_TEXT> in spec_helper)
7777
massive_text = 'a' * 1_000_000
7878

7979
# Create a few copies in the conversation

spec/spec_helper.rb

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@
8080
config.filter_sensitive_data('<REQUEST_ID>') { |interaction| interaction.response.headers['Request-Id']&.first }
8181
config.filter_sensitive_data('<CF_RAY>') { |interaction| interaction.response.headers['Cf-Ray']&.first }
8282

83+
# Filter large strings used to test "context length exceeded" error handling
84+
config.filter_sensitive_data('<MASSIVE_TEXT>') { 'a' * 1_000_000 }
85+
8386
# Filter cookies
8487
config.before_record do |interaction|
8588
if interaction.response.headers['Set-Cookie']

0 commit comments

Comments
 (0)