langfun 0.1.2.dev202512280805__tar.gz → 0.1.2.dev202601160805__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 (222) hide show
  1. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/PKG-INFO +1 -1
  2. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/language_model.py +38 -7
  3. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/language_model_test.py +230 -89
  4. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/gemini.py +67 -20
  5. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/gemini_test.py +28 -0
  6. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/rest.py +6 -0
  7. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/message_test.py +7 -7
  8. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun.egg-info/PKG-INFO +1 -1
  9. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/LICENSE +0 -0
  10. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/README.md +0 -0
  11. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/__init__.py +0 -0
  12. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/assistant/capabilities/gui/__init__.py +0 -0
  13. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/assistant/capabilities/gui/bounding_box_parser.py +0 -0
  14. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/assistant/capabilities/gui/bounding_box_parser_test.py +0 -0
  15. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/assistant/capabilities/gui/drawing.py +0 -0
  16. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/assistant/capabilities/gui/drawing_test.py +0 -0
  17. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/assistant/capabilities/gui/location.py +0 -0
  18. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/assistant/capabilities/gui/location_test.py +0 -0
  19. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/__init__.py +0 -0
  20. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/agentic/__init__.py +0 -0
  21. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/agentic/action.py +0 -0
  22. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/agentic/action_eval.py +0 -0
  23. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/agentic/action_eval_test.py +0 -0
  24. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/agentic/action_test.py +0 -0
  25. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/async_support.py +0 -0
  26. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/async_support_test.py +0 -0
  27. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/__init__.py +0 -0
  28. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/__init__.py +0 -0
  29. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/correction.py +0 -0
  30. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/correction_test.py +0 -0
  31. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/execution.py +0 -0
  32. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/execution_test.py +0 -0
  33. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/generation.py +0 -0
  34. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/generation_test.py +0 -0
  35. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/parsing.py +0 -0
  36. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/parsing_test.py +0 -0
  37. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/sandboxing.py +0 -0
  38. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/coding/python/sandboxing_test.py +0 -0
  39. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/component.py +0 -0
  40. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/component_test.py +0 -0
  41. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/concurrent.py +0 -0
  42. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/concurrent_test.py +0 -0
  43. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/console.py +0 -0
  44. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/console_test.py +0 -0
  45. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/__init__.py +0 -0
  46. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/conversion/__init__.py +0 -0
  47. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/conversion/anthropic.py +0 -0
  48. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/conversion/anthropic_test.py +0 -0
  49. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/conversion/gemini.py +0 -0
  50. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/conversion/gemini_test.py +0 -0
  51. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/conversion/openai.py +0 -0
  52. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/data/conversion/openai_test.py +0 -0
  53. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/__init__.py +0 -0
  54. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/base.py +0 -0
  55. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/base_test.py +0 -0
  56. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/matching.py +0 -0
  57. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/matching_test.py +0 -0
  58. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/patching.py +0 -0
  59. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/patching_test.py +0 -0
  60. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/scoring.py +0 -0
  61. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/scoring_test.py +0 -0
  62. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/__init__.py +0 -0
  63. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/checkpointing.py +0 -0
  64. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/checkpointing_test.py +0 -0
  65. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/config_saver.py +0 -0
  66. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/config_saver_test.py +0 -0
  67. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/eval_test_helper.py +0 -0
  68. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/evaluation.py +0 -0
  69. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/evaluation_test.py +0 -0
  70. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/example.py +0 -0
  71. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/example_test.py +0 -0
  72. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/experiment.py +0 -0
  73. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/experiment_test.py +0 -0
  74. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/metric_values.py +0 -0
  75. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/metric_values_test.py +0 -0
  76. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/metrics.py +0 -0
  77. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/metrics_test.py +0 -0
  78. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/progress.py +0 -0
  79. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/progress_test.py +0 -0
  80. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/progress_tracking.py +0 -0
  81. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/progress_tracking_test.py +0 -0
  82. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/reporting.py +0 -0
  83. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/reporting_test.py +0 -0
  84. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/__init__.py +0 -0
  85. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/base.py +0 -0
  86. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/beam.py +0 -0
  87. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/beam_test.py +0 -0
  88. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/ckpt_monitor.py +0 -0
  89. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/ckpt_monitor_test.py +0 -0
  90. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/debug.py +0 -0
  91. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/debug_test.py +0 -0
  92. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/parallel.py +0 -0
  93. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/parallel_test.py +0 -0
  94. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/sequential.py +0 -0
  95. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/eval/v2/runners/sequential_test.py +0 -0
  96. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/langfunc.py +0 -0
  97. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/langfunc_test.py +0 -0
  98. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/__init__.py +0 -0
  99. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/anthropic.py +0 -0
  100. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/anthropic_test.py +0 -0
  101. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/azure_openai.py +0 -0
  102. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/azure_openai_test.py +0 -0
  103. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/cache/__init__.py +0 -0
  104. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/cache/base.py +0 -0
  105. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/cache/in_memory.py +0 -0
  106. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/cache/in_memory_test.py +0 -0
  107. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/compositional.py +0 -0
  108. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/compositional_test.py +0 -0
  109. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/deepseek.py +0 -0
  110. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/deepseek_test.py +0 -0
  111. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/fake.py +0 -0
  112. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/fake_test.py +0 -0
  113. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/google_genai.py +0 -0
  114. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/google_genai_test.py +0 -0
  115. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/groq.py +0 -0
  116. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/groq_test.py +0 -0
  117. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/llama_cpp.py +0 -0
  118. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/llama_cpp_test.py +0 -0
  119. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/openai.py +0 -0
  120. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/openai_compatible.py +0 -0
  121. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/openai_compatible_test.py +0 -0
  122. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/openai_test.py +0 -0
  123. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/rest_test.py +0 -0
  124. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/vertexai.py +0 -0
  125. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/llms/vertexai_test.py +0 -0
  126. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/logging.py +0 -0
  127. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/logging_test.py +0 -0
  128. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/__init__.py +0 -0
  129. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/client.py +0 -0
  130. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/client_test.py +0 -0
  131. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/session.py +0 -0
  132. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/session_test.py +0 -0
  133. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/testing/simple_mcp_client.py +0 -0
  134. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/testing/simple_mcp_server.py +0 -0
  135. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/tool.py +0 -0
  136. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/mcp/tool_test.py +0 -0
  137. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/memories/__init__.py +0 -0
  138. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/memories/conversation_history.py +0 -0
  139. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/memories/conversation_history_test.py +0 -0
  140. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/memory.py +0 -0
  141. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/message.py +0 -0
  142. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/__init__.py +0 -0
  143. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/audio.py +0 -0
  144. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/audio_test.py +0 -0
  145. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/image.py +0 -0
  146. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/image_test.py +0 -0
  147. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/mime.py +0 -0
  148. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/mime_test.py +0 -0
  149. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/pdf.py +0 -0
  150. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/pdf_test.py +0 -0
  151. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/video.py +0 -0
  152. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modalities/video_test.py +0 -0
  153. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modality.py +0 -0
  154. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/modality_test.py +0 -0
  155. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/natural_language.py +0 -0
  156. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/natural_language_test.py +0 -0
  157. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/sampling.py +0 -0
  158. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/sampling_test.py +0 -0
  159. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/__init__.py +0 -0
  160. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/completion.py +0 -0
  161. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/completion_test.py +0 -0
  162. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/description.py +0 -0
  163. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/description_test.py +0 -0
  164. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/function_generation.py +0 -0
  165. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/function_generation_test.py +0 -0
  166. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/mapping.py +0 -0
  167. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/mapping_test.py +0 -0
  168. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/parsing.py +0 -0
  169. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/parsing_test.py +0 -0
  170. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/querying.py +0 -0
  171. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/querying_test.py +0 -0
  172. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema/__init__.py +0 -0
  173. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema/base.py +0 -0
  174. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema/base_test.py +0 -0
  175. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema/json.py +0 -0
  176. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema/json_test.py +0 -0
  177. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema/python.py +0 -0
  178. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema/python_test.py +0 -0
  179. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema_generation.py +0 -0
  180. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/schema_generation_test.py +0 -0
  181. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/scoring.py +0 -0
  182. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/scoring_test.py +0 -0
  183. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/tokenization.py +0 -0
  184. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/structured/tokenization_test.py +0 -0
  185. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/subscription.py +0 -0
  186. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/subscription_test.py +0 -0
  187. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/template.py +0 -0
  188. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/template_test.py +0 -0
  189. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/__init__.py +0 -0
  190. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/completion.py +0 -0
  191. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/completion_test.py +0 -0
  192. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/conversation.py +0 -0
  193. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/conversation_test.py +0 -0
  194. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/demonstration.py +0 -0
  195. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/demonstration_test.py +0 -0
  196. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/selfplay.py +0 -0
  197. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/core/templates/selfplay_test.py +0 -0
  198. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/__init__.py +0 -0
  199. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/base_environment.py +0 -0
  200. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/base_environment_test.py +0 -0
  201. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/base_feature.py +0 -0
  202. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/base_feature_test.py +0 -0
  203. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/base_sandbox.py +0 -0
  204. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/base_sandbox_test.py +0 -0
  205. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/event_handlers/__init__.py +0 -0
  206. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/event_handlers/chain.py +0 -0
  207. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/event_handlers/chain_test.py +0 -0
  208. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/event_handlers/event_logger.py +0 -0
  209. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/event_handlers/event_logger_test.py +0 -0
  210. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/event_handlers/metric_writer.py +0 -0
  211. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/event_handlers/metric_writer_test.py +0 -0
  212. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/interface.py +0 -0
  213. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/interface_test.py +0 -0
  214. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/load_balancers.py +0 -0
  215. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/load_balancers_test.py +0 -0
  216. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun/env/test_utils.py +0 -0
  217. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun.egg-info/SOURCES.txt +0 -0
  218. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun.egg-info/dependency_links.txt +0 -0
  219. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun.egg-info/requires.txt +0 -0
  220. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/langfun.egg-info/top_level.txt +0 -0
  221. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/setup.cfg +0 -0
  222. {langfun-0.1.2.dev202512280805 → langfun-0.1.2.dev202601160805}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: langfun
3
- Version: 0.1.2.dev202512280805
3
+ Version: 0.1.2.dev202601160805
4
4
  Summary: Langfun: Language as Functions.
5
5
  Home-page: https://github.com/google/langfun
6
6
  Author: Langfun Authors
@@ -212,15 +212,30 @@ class ModelInfo(pg.Object):
212
212
  The estimated cost in US dollars. If None, cost estimating is not
213
213
  supported on the model.
214
214
  """
215
- # NOTE(daiyip): supported cached tokens accounting in future.
215
+
216
216
  if (self.cost_per_1m_input_tokens is None
217
217
  or self.cost_per_1m_output_tokens is None):
218
218
  return None
219
- return (
220
- self.cost_per_1m_input_tokens * usage.prompt_tokens
221
- + self.cost_per_1m_output_tokens
222
- * (usage.total_tokens - usage.prompt_tokens)
223
- ) / 1000_000
219
+
220
+ # Calculate cost for non-cached prompt tokens
221
+ non_cached_prompt_tokens = (
222
+ usage.prompt_tokens - usage.cached_prompt_tokens
223
+ )
224
+ cost = self.cost_per_1m_input_tokens * non_cached_prompt_tokens
225
+
226
+ # Add cost for cached prompt tokens (if pricing is available)
227
+ if self.cost_per_1m_cached_input_tokens is not None:
228
+ cost += (
229
+ self.cost_per_1m_cached_input_tokens * usage.cached_prompt_tokens
230
+ )
231
+ else:
232
+ # Fall back to regular input token pricing for cached tokens
233
+ cost += self.cost_per_1m_input_tokens * usage.cached_prompt_tokens
234
+
235
+ # Add cost for output/completion tokens
236
+ cost += self.cost_per_1m_output_tokens * usage.completion_tokens
237
+
238
+ return cost / 1000_000
224
239
 
225
240
  pricing: Annotated[
226
241
  Pricing | None,
@@ -405,6 +420,7 @@ class LMSamplingUsage(pg.Object):
405
420
  prompt_tokens: int
406
421
  completion_tokens: int
407
422
  total_tokens: int
423
+ cached_prompt_tokens: int = 0
408
424
  num_requests: int = 1
409
425
  estimated_cost: Annotated[
410
426
  float | None,
@@ -429,6 +445,11 @@ class LMSamplingUsage(pg.Object):
429
445
  """Returns the average completion tokens per request."""
430
446
  return self.completion_tokens // self.num_requests
431
447
 
448
+ @property
449
+ def average_cached_prompt_tokens(self) -> int:
450
+ """Returns the average cached prompt tokens per request."""
451
+ return self.cached_prompt_tokens // self.num_requests
452
+
432
453
  @property
433
454
  def average_total_tokens(self) -> int:
434
455
  """Returns the average total tokens per request."""
@@ -453,6 +474,8 @@ class LMSamplingUsage(pg.Object):
453
474
  return LMSamplingUsage(
454
475
  prompt_tokens=self.prompt_tokens + other.prompt_tokens,
455
476
  completion_tokens=self.completion_tokens + other.completion_tokens,
477
+ cached_prompt_tokens=self.cached_prompt_tokens
478
+ + other.cached_prompt_tokens,
456
479
  total_tokens=self.total_tokens + other.total_tokens,
457
480
  num_requests=self.num_requests + other.num_requests,
458
481
  estimated_cost=estimated_cost,
@@ -1146,6 +1169,7 @@ class LanguageModel(component.Component):
1146
1169
  prompt_tokens=usage.prompt_tokens // n,
1147
1170
  completion_tokens=usage.completion_tokens // n,
1148
1171
  total_tokens=usage.total_tokens // n,
1172
+ cached_prompt_tokens=usage.cached_prompt_tokens // n,
1149
1173
  estimated_cost=(
1150
1174
  usage.estimated_cost / n if usage.estimated_cost else None
1151
1175
  ),
@@ -1637,7 +1661,14 @@ class UsageSummary(pg.Object, pg.views.HtmlTreeView.Extension):
1637
1661
  class AggregatedUsage(pg.Object):
1638
1662
  """Aggregated usage."""
1639
1663
 
1640
- total: LMSamplingUsage = LMSamplingUsage(0, 0, 0, 0, 0.0)
1664
+ total: LMSamplingUsage = LMSamplingUsage(
1665
+ prompt_tokens=0,
1666
+ completion_tokens=0,
1667
+ total_tokens=0,
1668
+ cached_prompt_tokens=0,
1669
+ num_requests=0,
1670
+ estimated_cost=0.0,
1671
+ )
1641
1672
  breakdown: dict[str, LMSamplingUsage] = {}
1642
1673
 
1643
1674
  def __bool__(self) -> bool: