.gitignore
.mailmap
.pre-commit-config.yaml
LICENSE
README.md
pyproject.toml
uv.lock
.github/renovate.json5
.github/workflows/codeflash.yaml
.github/workflows/publish.yaml
.github/workflows/test.yaml
fh_llm_client.egg-info/PKG-INFO
fh_llm_client.egg-info/SOURCES.txt
fh_llm_client.egg-info/dependency_links.txt
fh_llm_client.egg-info/requires.txt
fh_llm_client.egg-info/top_level.txt
llmclient/__init__.py
llmclient/constants.py
llmclient/cost_tracker.py
llmclient/embeddings.py
llmclient/exceptions.py
llmclient/llms.py
llmclient/py.typed
llmclient/rate_limiter.py
llmclient/types.py
llmclient/utils.py
llmclient/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/cassettes/TestLiteLLMEmbeddingModel.test_caching.yaml
tests/cassettes/TestLiteLLMModel.test_call[Anthropic-model].yaml
tests/cassettes/TestLiteLLMModel.test_call[OpenAI-model].yaml
tests/cassettes/TestLiteLLMModel.test_call[chat-model].yaml
tests/cassettes/TestLiteLLMModel.test_call[completion-model].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_figure.yaml
tests/cassettes/TestLiteLLMModel.test_call_with_prompt[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_call_with_prompt[without-router].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/TestLiteLLMModel.test_run_prompt[with-router].yaml
tests/cassettes/TestLiteLLMModel.test_run_prompt[without-router].yaml
tests/cassettes/TestMultipleCompletion.test_model[gpt-3.5-turbo-0125].yaml
tests/cassettes/TestMultipleCompletion.test_model[gpt-3.5-turbo].yaml
tests/cassettes/TestMultipleCompletion.test_model[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestMultipleCompletion.test_model[gpt-4o-mini].yaml
tests/cassettes/TestMultipleCompletion.test_model[gpt-4o].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[claude-3-haiku-20240307].yaml
tests/cassettes/TestMultipleCompletion.test_single_completion[gpt-3.5-turbo-0125].yaml
tests/cassettes/TestMultipleCompletion.test_single_completion[gpt-3.5-turbo].yaml
tests/cassettes/TestMultipleCompletion.test_single_completion[gpt-4o-mini-2024-07-18].yaml
tests/cassettes/TestMultipleCompletion.test_text_image_message[gpt-4o-mini-2024-07-18].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/test_deepseek_model.yaml
tests/cassettes/test_openrouter_reasoning.yaml