Metadata-Version: 2.3
Name: auto-graph-of-thoughts
Version: 0.3.0
Summary: Automated Graph of Thoughts
Project-URL: Repository, https://gitlab.ti.bfh.ch/riesm1-bathesis/auto-graph-of-thoughts.git
Author-email: Manuel Riesen <manuelnoah.riesen@students.bfh.ch>
Maintainer-email: Manuel Riesen <manuelnoah.riesen@students.bfh.ch>
License-File: LICENSE
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Requires-Python: >=3.11
Requires-Dist: backoff<3.0.0,>=2.2.1
Requires-Dist: gymnasium<1.0.0,>=0.29.1
Requires-Dist: numpy<2.0.0,>=1.26.4
Requires-Dist: openai<2.0.0,>=1.12.0
Provides-Extra: notebooks
Requires-Dist: jupyter<2.0.0,>=1.0.0; extra == 'notebooks'
Requires-Dist: stable-baselines3<3.0.0,>=2.2.1; extra == 'notebooks'
Provides-Extra: visualization
Requires-Dist: matplotlib<4.0.0,>=3.8.3; extra == 'visualization'
Requires-Dist: networkx<4.0.0,>=3.2.1; extra == 'visualization'
Requires-Dist: types-networkx<4.0.0,>=3.2.1; extra == 'visualization'
Provides-Extra: visualization-dot
Requires-Dist: pygraphviz<2.0,>=1.12; extra == 'visualization-dot'
Description-Content-Type: text/markdown

# Automated Graph of Thoughts
This is the official implementation of Automated Graph of Thoughts.

## Setup Guide
To run this code, Python `3.11` or newer is required.
The latest version of the package can be installed from [PyPI](https://pypi.org/project/auto-graph-of-thoughts/):
```shell
pip install auto-graph-of-thoughts
```
Alternatively, the package can be installed from source.

### Optional Dependencies
The project comes with optional dependencies which are required for some features.

#### Graph Visualization
To visualize the graphs by using `pure_graph_of_thoughts.visualization`, 
the optional `visualization` dependencies are required.
```shell
pip install auto-graph-of-thoughts[visualization]
```
For a cleaner, hierarchical visualization, add `dot-visualization`.
```shell
pip install auto-graph-of-thoughts[visualization,dot-visualization]
```
Be aware that `dot-visualization` requires the [GraphViz](https://graphviz.org/) library to be installed.

#### Notebooks
Several notebooks with examples and model training are provided with the source code.
To run the notebooks, the optional `notebooks` dependencies are required.
```shell
pip install auto-graph-of-thoughts[notebooks]
```
Be aware that the notebooks are not part of the distributed package on PyPI.


## Pure Graph of Thoughts
The package `pure_graph_of_thoughts` contains a new implementation of the Graph of Thoughts concepts.

Graph of Thoughts was originally introduced in the paper 
[Graph of Thoughts: Solving Elaborate Problems with Large Language Models](https://arxiv.org/pdf/2308.09687.pdf).
The official implementation of the paper's proposed API can be found here: https://github.com/spcl/graph-of-thoughts.

The `pure_graph_of_thoughts` package does not conform the API proposed by the original paper nor is it a fork of it.
It aims for a more automation-friendly implementation of the general concept of Graph of Thoughts, 
where both construction and traversal of a graph can be handled iteratively.

Some key differences and restrictions:
- Operations and thoughts are represented independently of their graph structure.
- As a user-facing API, operations can be defined in a declarative way over a typed and validated data structure (DSL).
- There is a strict distinction between a prompt operation executed by a language model and a code execution operation.
- To simplify parsing logic and to ensure consistent results, the JSON format is used for communication with the language model.
- The scoring is now part of an operation involving a prompt, rather than being a standalone operation that can be added arbitrarily.
  While this simplifies the automation process, it restricts the user's possibility of adding a validation operation.
