LICENSE
README.md
pyproject.toml
src/fhlmi.egg-info/PKG-INFO
src/fhlmi.egg-info/SOURCES.txt
src/fhlmi.egg-info/dependency_links.txt
src/fhlmi.egg-info/requires.txt
src/fhlmi.egg-info/top_level.txt
src/lmi/__init__.py
src/lmi/constants.py
src/lmi/cost_tracker.py
src/lmi/embeddings.py
src/lmi/exceptions.py
src/lmi/llms.py
src/lmi/py.typed
src/lmi/rate_limiter.py
src/lmi/types.py
src/lmi/utils.py
src/lmi/version.py
tests/__init__.py
tests/conftest.py
tests/test_cost_tracking.py
tests/test_embeddings.py
tests/test_llms.py
tests/test_rate_limiter.py
tests/test_utils.py
tests/cassettes/TestCachedTokenCosts.test_anthropic_cache_creation_cost_accuracy.yaml
tests/cassettes/TestCachedTokenCosts.test_anthropic_incremental_cache_with_conversation.yaml
tests/cassettes/TestCachedTokenCosts.test_cache_read_cost_accuracy[claude-sonnet-4-5-20250929-True].yaml
tests/cassettes/TestCachedTokenCosts.test_cache_read_cost_accuracy[gpt-4o-2024-11-20-False].yaml
tests/cassettes/TestCachedTokenCosts.test_cache_with_streaming[claude-sonnet-4-5-20250929-True].yaml
tests/cassettes/TestCachedTokenCosts.test_cache_with_streaming[gpt-4o-2024-11-20-False].yaml
tests/cassettes/TestCachedTokenEdgeCases.test_completion_cost_failure_with_cached_tokens.yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_embeddings[text-embedding-3-small].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[claude-3-5-haiku-20241022-False].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[claude-3-5-haiku-20241022-True].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[gpt-4o-mini-2024-07-18-False].yaml
tests/cassettes/TestCostTrackerCallback.test_cost_tracking_with_streaming_modes[gpt-4o-mini-2024-07-18-True].yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_caching.yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_embedding_batches.yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_router_usage[with-router].yaml
tests/cassettes/TestLiteLLMEmbeddingModel.test_router_usage[without-router].yaml
tests/cassettes/TestLiteLLMModel.test_call[Anthropic-model].yaml
tests/cassettes/TestLiteLLMModel.test_call[OpenAI-model-1].yaml
tests/cassettes/TestLiteLLMModel.test_call[OpenAI-model-2].yaml
tests/cassettes/TestLiteLLMModel.test_call_single[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_call_single[without-router].yaml
tests/cassettes/TestLiteLLMModel.test_call_w_multiple_models[multiple-models].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call[Anthropic-model].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call[OpenAI-model].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call_single[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_cost_call_single[without-router].yaml
tests/cassettes/TestLiteLLMModel.test_max_token_truncation[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_max_token_truncation[without-router].yaml
tests/cassettes/TestMultipleCompletion.test_model[gpt-3.5-turbo-0125].yaml
tests/cassettes/TestMultipleCompletion.test_multiple_completion[openai].yaml
tests/cassettes/TestMultipleCompletion.test_output_schema[json-mode-base-model].yaml
tests/cassettes/TestMultipleCompletion.test_output_schema[json-mode-type-adapter].yaml
tests/cassettes/TestMultipleCompletion.test_output_schema[structured-outputs].yaml
tests/cassettes/TestMultipleCompletion.test_parameterizing_tool_from_arg_union.yaml
tests/cassettes/TestMultipleCompletion.test_single_completion[claude-3-5-haiku-20241022].yaml
tests/cassettes/TestMultipleCompletion.test_single_completion[gpt-3.5-turbo-0125].yaml
tests/cassettes/TestMultipleCompletion.test_text_image_message[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestReasoning.test_deepseek_model[deepseek-reasoner].yaml
tests/cassettes/TestReasoning.test_deepseek_model[openrouter-deepseek].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[high-expected_len1-claude-sonnet-4-5-20250929].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[high-expected_len1-gpt-5-2025-08-07].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[low-expected_len0-claude-sonnet-4-5-20250929].yaml
tests/cassettes/TestReasoning.test_reasoning_effort[low-expected_len0-gpt-5-2025-08-07].yaml
tests/cassettes/TestTooling.test_custom_tool_parser_from_config.yaml
tests/cassettes/TestTooling.test_empty_tools[Anthropic-empty-tools].yaml
tests/cassettes/TestTooling.test_empty_tools[Anthropic-no-tools].yaml
tests/cassettes/TestTooling.test_empty_tools[OpenAI-empty-tools].yaml
tests/cassettes/TestTooling.test_empty_tools[OpenAI-no-tools].yaml
tests/cassettes/TestTooling.test_multi_response_validation.yaml
tests/cassettes/TestTooling.test_tool_selection.yaml
tests/stub_data/sf_districts.png