.coveragerc
.gitignore
.isort.cfg
.pre-commit-config.yaml
.pylintrc
CONTRIBUTING.md
LICENSE
OWNERS
README.md
code-of-conduct.md
pyproject.toml
pytest.ini
tox.ini
.github/dependabot.yml
.github/actions/free-disk-space/action.yml
.github/actions/ollama-setup/action.yml
.github/workflows/actionlint.dockerfile
.github/workflows/actionlint.yml
.github/workflows/lint.yml
.github/workflows/pypi.yml
.github/workflows/test.yml
.github/workflows/test_examples.yml
.github/workflows/matchers/actionlint.json
.github/workflows/matchers/pylint.json
examples/model_chat.py
examples/model_chat_with_citation.py
examples/model_chat_with_citation_hallunication.py
examples/model_chat_with_thinking.py
examples/model_chat_with_thinking_separate_backend.py
examples/watsonx_litellm.py
notebooks/io.ipynb
notebooks/voting.ipynb
src/granite_io/__init__.py
src/granite_io/_version.py
src/granite_io/factory.py
src/granite_io/optional.py
src/granite_io/types.py
src/granite_io.egg-info/PKG-INFO
src/granite_io.egg-info/SOURCES.txt
src/granite_io.egg-info/dependency_links.txt
src/granite_io.egg-info/requires.txt
src/granite_io.egg-info/top_level.txt
src/granite_io/backend/__init__.py
src/granite_io/backend/base.py
src/granite_io/backend/litellm.py
src/granite_io/backend/openai.py
src/granite_io/backend/registry.py
src/granite_io/backend/transformers.py
src/granite_io/io/__init__.py
src/granite_io/io/base.py
src/granite_io/io/consts.py
src/granite_io/io/registry.py
src/granite_io/io/granite_3_2/__init__.py
src/granite_io/io/granite_3_2/granite_3_2.py
src/granite_io/io/granite_3_2/input_processors/__init__.py
src/granite_io/io/granite_3_2/input_processors/granite_3_2_input_processor.py
src/granite_io/io/granite_3_2/output_processors/__init__.py
src/granite_io/io/granite_3_2/output_processors/granite_3_2_output_parser.py
src/granite_io/io/granite_3_2/output_processors/granite_3_2_output_processor.py
src/granite_io/io/voting/__init__.py
src/granite_io/io/voting/voting.py
tests/conftest.py
tests/test_backends.py
tests/test_factory.py
tests/test_types.py
tests/test_utils.py
tests/cassettes/test_backends/test_num_return_sequences_1[backend_litellm].yaml
tests/cassettes/test_backends/test_num_return_sequences_1[backend_openai].yaml
tests/cassettes/test_backends/test_num_return_sequences_3[backend_litellm].yaml
tests/cassettes/test_backends/test_num_return_sequences_3[backend_openai].yaml
tests/cassettes/test_backends/test_num_return_sequences_invalid[backend_litellm--1].yaml
tests/cassettes/test_backends/test_num_return_sequences_invalid[backend_litellm-0].yaml
tests/cassettes/test_backends/test_simple[backend_litellm].yaml
tests/cassettes/test_backends/test_simple[backend_openai].yaml
tests/io/test_voting.py
tests/io/cassettes/test_granite_3_2/test_run_processor[backend_litellm-simple].yaml
tests/io/cassettes/test_granite_3_2/test_run_processor[backend_litellm-thinking_tag].yaml
tests/io/cassettes/test_granite_3_2/test_run_processor[backend_openai-simple].yaml
tests/io/cassettes/test_granite_3_2/test_run_processor[backend_openai-thinking_tag].yaml
tests/io/cassettes/test_voting/test_numeric_voting[backend_openai].yaml
tests/io/granite_3_2/test_granite_3_2.py
tests/io/granite_3_2/cassettes/test_granite_3_2/test_completion_presence_param[backend_litellm].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_completion_presence_param[backend_openai].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_completion_repetition_param[backend_litellm].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_completion_repetition_param[backend_openai].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_multiple_return[backend_openai-simple].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_multiple_return[backend_openai-stop_strings].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_multiple_return[backend_openai-thinking_tag].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_run_processor[backend_litellm-simple].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_run_processor[backend_litellm-stop_strings].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_run_processor[backend_litellm-thinking_tag].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_run_processor[backend_openai-simple].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_run_processor[backend_openai-stop_strings].yaml
tests/io/granite_3_2/cassettes/test_granite_3_2/test_run_processor[backend_openai-thinking_tag].yaml
tests/io/granite_3_2/input_processors/test_granite_3_2_input_processor.py
tests/io/granite_3_2/input_processors/testdata/test_reasoning_prompt.txt
tests/io/granite_3_2/output_processors/test_granite_3_2_output_parser.py
tests/io/granite_3_2/output_processors/test_granite_3_2_output_processor.py
tests/io/granite_3_2/output_processors/testdata/test_document_source.txt
tests/io/granite_3_2/output_processors/testdata/test_output.txt
tests/io/granite_3_2/output_processors/testdata/test_output_with_citation.txt
tests/io/granite_3_2/output_processors/testdata/test_output_with_citation_from_source.txt
tests/io/granite_3_2/output_processors/testdata/test_output_with_citation_hallucinations.txt
tests/io/granite_3_2/output_processors/testdata/test_output_with_invalid_citation.txt
tests/io/granite_3_2/output_processors/testdata/test_raw_reasoning_output.txt
tests/io/granite_3_2/output_processors/testdata/test_reasoning_output_processor_response.txt
tests/io/granite_3_2/output_processors/testdata/test_reasoning_output_processor_thought.txt