Metadata-Version: 2.1
Name: janus-llm
Version: 1.0.0
Summary: A transcoding library using LLMs.
Home-page: https://github.com/janus-llm/janus-llm
License: Apache 2.0
Author: Michael Doyle
Author-email: mdoyle@mitre.org
Requires-Python: >=3.10,<4.0
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Requires-Dist: chromadb (>=0.4.14,<0.5.0)
Requires-Dist: gitpython (>=3.1.32,<4.0.0)
Requires-Dist: gpt4all (>=2.0.2,<3.0.0)
Requires-Dist: langchain (>=0.0.306,<0.0.307)
Requires-Dist: langchain-community (>=0.0.16,<0.0.17)
Requires-Dist: numpy (>=1.24.3,<2.0.0)
Requires-Dist: openai (>=0.27.6,<0.28.0)
Requires-Dist: python-dotenv (>=1.0.0,<2.0.0)
Requires-Dist: rich (>=13.3.5,<14.0.0)
Requires-Dist: text-generation (>=0.6.0,<0.7.0)
Requires-Dist: tiktoken (>=0.4.0,<0.5.0)
Requires-Dist: transformers (>=4.31.0,<5.0.0)
Requires-Dist: tree-sitter (>=0.20.1,<0.21.0)
Requires-Dist: typer (>=0.9.0,<0.10.0)
Project-URL: Documentation, https://janus-llm.github.io/janus-llm
Project-URL: Repository, https://github.com/janus-llm/janus-llm
Description-Content-Type: text/markdown


<p align="center">
    <img src="assets/icons/logo_horizontal.png">
</p>
<p align="center">
<a href="https://github.com/janus-llm/janus-llm/actions/workflows/pages.yml" target="_blank">
    <img src="https://github.com/janus-llm/janus-llm/actions/workflows/pages.yml/badge.svg" alt="Pages">
</a>
<a href="https://github.com/janus-llm/janus-llm/actions/workflows/publish.yml" target="_blank">
    <img src="https://github.com/janus-llm/janus-llm/actions/workflows/publish.yml/badge.svg" alt="Publish">
</a>
<a href="https://github.com/psf/black" target="_blank">
    <img src="https://img.shields.io/badge/code%20style-black-000000.svg" alt="Code Style: black">
<a href="https://pypi.org/project/janus-llm" target="_blank">
    <img src="https://img.shields.io/pypi/pyversions/janus-llm" alt="Python versions">
<a href="https://pypi.org/project/janus-llm" target="_blank">
    <img src="https://img.shields.io/pypi/v/janus-llm?color=%2334D058&label=pypi%20package" alt="Package version">
</a>
</p>

## Overview

Janus (`janus-llm`) uses LLMs to aid in the modernization of legacy IT systems. The repository can currently do the following:

1. Chunk code of over 100 programming languages to fit within different model context windows and add to a [Chroma](https://trychroma.com) vector database.
2. Translate from one programming language to another on a file-by-file basis using an LLM with varying results (with the `translate.py` script).
3. Translate from a binary file to a programming language using Ghidra decompilation.
4. Do 1-3 with a CLI tool (`janus`).

## Roadmap

### Priorities

1. Scripts interacting with Chroma Vector DB for RAG translation and understanding.
2. Evaluation of outputs in CLI using LLM self-evaluation or static analysis.

## Installation

```shell
pip install janus-llm
```

### Installing from Source

Clone the repository:

```shell
git clone git@github.com:janus-llm/janus-llm.git
```

**NOTE**: Make sure you're using Python 3.10 or 3.11.

Then, install the requirements:

```shell
curl -sSkL https://install.python-poetry.org | python -
export PATH=$PATH:$HOME/.local/bin
poetry install
```

### Contributing

See our [contributing pages](https://janus-llm.github.io/janus-llm/contributing.html)

