Metadata-Version: 2.1
Name: docchain
Version: 0.0.4
Summary: 
Author: Artem Kolesnikov
Author-email: tyomo4ka@gmail.com
Requires-Python: >=3.10,<4.0
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Requires-Dist: jsonschema (>=4.17.3,<5.0.0)
Requires-Dist: langchain (>=0.0.153,<0.0.154)
Requires-Dist: openai (>=0.27.5,<0.28.0)
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Description-Content-Type: text/markdown

# Doc Chain

This package can be used to generate complex structured documents from specification using LLMm
models.

`Document` is an abstraction that represent generated data e.g. text in markdown or HTML,
configuration in JSON, YAML or other formats, it could be Python objects or classes, or any other
structure that can be generated by LLMs.

`Spec` contains document requirements that can vary depending on type of generated document, e.g.
for YAML or JSON docs it could include JSON Schema definition.

`Section` is a composite part of a Document. Document itself is a Section. Such design allows
inclusion of Documents inside another documents.

`Generator` generates Document from the provided Spec. Each generator cna be configured with a list
of steps that are executed before or after generation.

`Step` is a callable that can modify Spec or generated Document. It could be thought as middleware
in an HTTP framework and cna be used for variety of tasks.

## TODO

- [ ] Implement checkpoints and resume generation from checkpoint on failure.

