langfun 0.1.2.dev202504150804__tar.gz → 0.1.2.dev202504170804__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of langfun might be problematic. Click here for more details.

Files changed (168) hide show
  1. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/PKG-INFO +1 -1
  2. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/__init__.py +2 -0
  3. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/language_model.py +8 -0
  4. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/anthropic.py +5 -0
  5. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/anthropic_test.py +11 -0
  6. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/gemini.py +6 -0
  7. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/gemini_test.py +16 -0
  8. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/openai_compatible.py +6 -0
  9. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/openai_compatible_test.py +18 -0
  10. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun.egg-info/PKG-INFO +1 -1
  11. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/LICENSE +0 -0
  12. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/README.md +0 -0
  13. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/__init__.py +0 -0
  14. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/agentic/__init__.py +0 -0
  15. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/agentic/action.py +0 -0
  16. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/agentic/action_eval.py +0 -0
  17. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/agentic/action_eval_test.py +0 -0
  18. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/agentic/action_test.py +0 -0
  19. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/__init__.py +0 -0
  20. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/__init__.py +0 -0
  21. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/correction.py +0 -0
  22. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/correction_test.py +0 -0
  23. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/execution.py +0 -0
  24. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/execution_test.py +0 -0
  25. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/generation.py +0 -0
  26. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/generation_test.py +0 -0
  27. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/parsing.py +0 -0
  28. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/parsing_test.py +0 -0
  29. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/sandboxing.py +0 -0
  30. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/coding/python/sandboxing_test.py +0 -0
  31. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/component.py +0 -0
  32. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/component_test.py +0 -0
  33. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/concurrent.py +0 -0
  34. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/concurrent_test.py +0 -0
  35. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/console.py +0 -0
  36. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/console_test.py +0 -0
  37. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/__init__.py +0 -0
  38. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/conversion/__init__.py +0 -0
  39. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/conversion/anthropic.py +0 -0
  40. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/conversion/anthropic_test.py +0 -0
  41. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/conversion/gemini.py +0 -0
  42. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/conversion/gemini_test.py +0 -0
  43. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/conversion/openai.py +0 -0
  44. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/data/conversion/openai_test.py +0 -0
  45. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/__init__.py +0 -0
  46. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/base.py +0 -0
  47. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/base_test.py +0 -0
  48. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/matching.py +0 -0
  49. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/matching_test.py +0 -0
  50. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/patching.py +0 -0
  51. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/patching_test.py +0 -0
  52. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/scoring.py +0 -0
  53. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/scoring_test.py +0 -0
  54. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/__init__.py +0 -0
  55. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/checkpointing.py +0 -0
  56. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/checkpointing_test.py +0 -0
  57. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/eval_test_helper.py +0 -0
  58. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/evaluation.py +0 -0
  59. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/evaluation_test.py +0 -0
  60. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/example.py +0 -0
  61. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/example_test.py +0 -0
  62. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/experiment.py +0 -0
  63. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/experiment_test.py +0 -0
  64. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/metric_values.py +0 -0
  65. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/metric_values_test.py +0 -0
  66. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/metrics.py +0 -0
  67. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/metrics_test.py +0 -0
  68. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/progress.py +0 -0
  69. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/progress_test.py +0 -0
  70. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/progress_tracking.py +0 -0
  71. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
  72. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/reporting.py +0 -0
  73. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/reporting_test.py +0 -0
  74. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/runners.py +0 -0
  75. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/eval/v2/runners_test.py +0 -0
  76. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/langfunc.py +0 -0
  77. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/langfunc_test.py +0 -0
  78. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/language_model_test.py +0 -0
  79. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/__init__.py +0 -0
  80. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/azure_openai.py +0 -0
  81. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/azure_openai_test.py +0 -0
  82. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/cache/__init__.py +0 -0
  83. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/cache/base.py +0 -0
  84. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/cache/in_memory.py +0 -0
  85. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/cache/in_memory_test.py +0 -0
  86. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/compositional.py +0 -0
  87. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/compositional_test.py +0 -0
  88. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/deepseek.py +0 -0
  89. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/deepseek_test.py +0 -0
  90. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/fake.py +0 -0
  91. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/fake_test.py +0 -0
  92. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/google_genai.py +0 -0
  93. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/google_genai_test.py +0 -0
  94. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/groq.py +0 -0
  95. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/groq_test.py +0 -0
  96. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/llama_cpp.py +0 -0
  97. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/llama_cpp_test.py +0 -0
  98. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/openai.py +0 -0
  99. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/openai_test.py +0 -0
  100. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/rest.py +0 -0
  101. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/rest_test.py +0 -0
  102. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/vertexai.py +0 -0
  103. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/llms/vertexai_test.py +0 -0
  104. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/logging.py +0 -0
  105. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/logging_test.py +0 -0
  106. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/memories/__init__.py +0 -0
  107. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/memories/conversation_history.py +0 -0
  108. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/memories/conversation_history_test.py +0 -0
  109. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/memory.py +0 -0
  110. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/message.py +0 -0
  111. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/message_test.py +0 -0
  112. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/__init__.py +0 -0
  113. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/audio.py +0 -0
  114. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/audio_test.py +0 -0
  115. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/image.py +0 -0
  116. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/image_test.py +0 -0
  117. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/mime.py +0 -0
  118. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/mime_test.py +0 -0
  119. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/pdf.py +0 -0
  120. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/pdf_test.py +0 -0
  121. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/video.py +0 -0
  122. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modalities/video_test.py +0 -0
  123. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modality.py +0 -0
  124. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/modality_test.py +0 -0
  125. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/natural_language.py +0 -0
  126. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/natural_language_test.py +0 -0
  127. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/sampling.py +0 -0
  128. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/sampling_test.py +0 -0
  129. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/__init__.py +0 -0
  130. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/completion.py +0 -0
  131. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/completion_test.py +0 -0
  132. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/description.py +0 -0
  133. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/description_test.py +0 -0
  134. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/function_generation.py +0 -0
  135. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/function_generation_test.py +0 -0
  136. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/mapping.py +0 -0
  137. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/mapping_test.py +0 -0
  138. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/parsing.py +0 -0
  139. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/parsing_test.py +0 -0
  140. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/querying.py +0 -0
  141. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/querying_test.py +0 -0
  142. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/schema.py +0 -0
  143. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/schema_generation.py +0 -0
  144. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/schema_generation_test.py +0 -0
  145. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/schema_test.py +0 -0
  146. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/scoring.py +0 -0
  147. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/scoring_test.py +0 -0
  148. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/tokenization.py +0 -0
  149. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/structured/tokenization_test.py +0 -0
  150. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/subscription.py +0 -0
  151. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/subscription_test.py +0 -0
  152. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/template.py +0 -0
  153. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/template_test.py +0 -0
  154. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/__init__.py +0 -0
  155. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/completion.py +0 -0
  156. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/completion_test.py +0 -0
  157. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/conversation.py +0 -0
  158. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/conversation_test.py +0 -0
  159. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/demonstration.py +0 -0
  160. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/demonstration_test.py +0 -0
  161. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/selfplay.py +0 -0
  162. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun/core/templates/selfplay_test.py +0 -0
  163. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun.egg-info/SOURCES.txt +0 -0
  164. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun.egg-info/dependency_links.txt +0 -0
  165. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun.egg-info/requires.txt +0 -0
  166. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/langfun.egg-info/top_level.txt +0 -0
  167. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/setup.cfg +0 -0
  168. {langfun-0.1.2.dev202504150804 → langfun-0.1.2.dev202504170804}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langfun
3
- Version: 0.1.2.dev202504150804
3
+ Version: 0.1.2.dev202504170804
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors
@@ -111,6 +111,8 @@ from langfun.core.language_model import LMCache
111
111
  from langfun.core.language_model import LMDebugMode
112
112
 
113
113
  from langfun.core.language_model import LMError
114
+ from langfun.core.language_model import LMInputError
115
+ from langfun.core.language_model import ContextLimitError
114
116
  from langfun.core.language_model import RetryableLMError
115
117
  from langfun.core.language_model import RateLimitError
116
118
  from langfun.core.language_model import TemporaryLMError
@@ -40,6 +40,14 @@ class LMError(RuntimeError):
40
40
  """Base class for language model errors."""
41
41
 
42
42
 
43
+ class LMInputError(LMError):
44
+ """Base class for errors with bad input."""
45
+
46
+
47
+ class ContextLimitError(LMInputError):
48
+ """Error for context limit exceeded."""
49
+
50
+
43
51
  class RetryableLMError(LMError):
44
52
  """Base class for LLM errors that can be solved by retrying."""
45
53
 
@@ -573,6 +573,11 @@ class Anthropic(rest.REST):
573
573
  ),
574
574
  )
575
575
 
576
+ def _error(self, status_code: int, content: str) -> lf.LMError:
577
+ if status_code == 413 and b'Prompt is too long' in content:
578
+ return lf.ContextLimitError(f'{status_code}: {content}')
579
+ return super()._error(status_code, content)
580
+
576
581
 
577
582
  class Claude37(Anthropic):
578
583
  """Base class for Claude 3.7 models."""
@@ -217,6 +217,17 @@ class AnthropicTest(unittest.TestCase):
217
217
  ):
218
218
  lm('hello', max_attempts=1)
219
219
 
220
+ def test_call_with_context_limit_error(self):
221
+ with mock.patch('requests.Session.post') as mock_request:
222
+ mock_request.side_effect = mock_requests_post_error(
223
+ 413, 'bad_request', 'Prompt is too long.'
224
+ )
225
+ lm = anthropic.Claude3Haiku(api_key='fake_key')
226
+ with self.assertRaisesRegex(
227
+ lf.ContextLimitError, 'Prompt is too long.'
228
+ ):
229
+ lm('hello', max_attempts=1)
230
+
220
231
  def test_lm_get(self):
221
232
  self.assertIsInstance(
222
233
  lf.LanguageModel.get('claude-3-5-sonnet-latest'),
@@ -645,3 +645,9 @@ class Gemini(rest.REST):
645
645
  total_tokens=input_tokens + output_tokens,
646
646
  ),
647
647
  )
648
+
649
+ def _error(self, status_code: int, content: str) -> lf.LMError:
650
+ if (status_code == 400
651
+ and b'exceeds the maximum number of tokens' in content):
652
+ return lf.ContextLimitError(f'{status_code}: {content}')
653
+ return super()._error(status_code, content)
@@ -178,6 +178,22 @@ class GeminiTest(unittest.TestCase):
178
178
  self.assertEqual(r.metadata.usage.prompt_tokens, 3)
179
179
  self.assertEqual(r.metadata.usage.completion_tokens, 4)
180
180
 
181
+ def test_call_model_with_context_limit_error(self):
182
+ def mock_requests_post_error(*args, **kwargs):
183
+ del args, kwargs
184
+ response = requests.Response()
185
+ response.status_code = 400
186
+ response._content = b'exceeds the maximum number of tokens.'
187
+ return response
188
+
189
+ with mock.patch('requests.Session.post') as mock_generate:
190
+ mock_generate.side_effect = mock_requests_post_error
191
+ lm = gemini.Gemini('gemini-1.5-pro', api_endpoint='')
192
+ with self.assertRaisesRegex(
193
+ lf.ContextLimitError, 'exceeds the maximum number of tokens.'
194
+ ):
195
+ lm('hello')
196
+
181
197
  def test_call_model_with_system_message(self):
182
198
  with mock.patch('requests.Session.post') as mock_generate:
183
199
  mock_generate.side_effect = mock_requests_post
@@ -159,3 +159,9 @@ class OpenAICompatible(rest.REST):
159
159
 
160
160
  ),
161
161
  )
162
+
163
+ def _error(self, status_code: int, content: str) -> lf.LMError:
164
+ if (status_code == 413
165
+ or (status_code == 400 and b'string_above_max_length' in content)):
166
+ return lf.ContextLimitError(f'{status_code}: {content}')
167
+ return super()._error(status_code, content)
@@ -505,6 +505,24 @@ class OpenAIComptibleTest(unittest.TestCase):
505
505
  ):
506
506
  lm(lf.UserMessage('hello', json_schema={}))
507
507
 
508
+ def test_call_with_context_limit_error(self):
509
+ def mock_context_limit_error(*args, **kwargs):
510
+ del args, kwargs
511
+ response = requests.Response()
512
+ response.status_code = 400
513
+ response._content = b'string_above_max_length'
514
+ return response
515
+
516
+ with mock.patch('requests.Session.post') as mock_request:
517
+ mock_request.side_effect = mock_context_limit_error
518
+ lm = openai_compatible.OpenAICompatible(
519
+ api_endpoint='https://test-server', model='test-model'
520
+ )
521
+ with self.assertRaisesRegex(
522
+ lf.ContextLimitError, 'string_above_max_length'
523
+ ):
524
+ lm(lf.UserMessage('hello'))
525
+
508
526
 
509
527
  if __name__ == '__main__':
510
528
  unittest.main()
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langfun
3
- Version: 0.1.2.dev202504150804
3
+ Version: 0.1.2.dev202504170804
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors