Skip to main content

Python framework for LLM/VLM with logic-only coding with streaming, tool calls, and multi-LLM provider support

Project description

open-taranis

Python framework for AI agents logic-only coding with streaming, tool calls, and multi-LLM provider support.

Only the "fairly stable" versions are published on PyPi, but to get the latest experimental versions, clone this repository and install it !

Installation

pip install open-taranis --upgrade

For package on PyPi

or

git clone https://github.com/SyntaxError4Life/open-taranis && cd open-taranis/ && pip install .

For last version

Quick Start

Simplest
import open_taranis as T

client = T.clients.openrouter() # API_KEY in env_var

messages = [
    T.create_user_prompt("Tell me about yourself")
]

stream = T.clients.openrouter_request(
    client=client,
    messages=messages,
    model="nvidia/nemotron-3-nano-30b-a3b:free", 
)

print("assistant : ",end="")
for token, tool, tool_bool in T.handle_streaming(stream) : 
    if token :
        print(token, end="")
Make a simple agent with a context windows on the 6 last turns
import open_taranis as T

class Agent(T.agent_base):
    def __init__(self):
        super().__init__()

        self.client = T.clients.openrouter()
        self._system_prompt = [T.create_system_prompt(
            "You're an agent nammed **Taranis** !"
        )]


    def create_stream(self):
        return T.clients.openrouter_request(
            client=self.client,
            messages=self._system_prompt+self.messages,
            model="nvidia/nemotron-3-nano-30b-a3b:free"
        )

    def manage_messages(self):
        self.messages = self.messages[-12:] # Each turn have 1 user and 1 assistant

My_agent = Agent()

while True :
    prompt = input("user : ")

    print("\n\nagent : ", end="")

    for t in My_agent(prompt):
        print(t, end="", flush=True)
    
    print("\n\n","="*60,"\n")
To create a simple display using gradio as backend
import open_taranis as T
import open_taranis.web_front as W
import gradio as gr

class Gradio_agent(T.agent_base):
    def __init__(self):
        super().__init__()

        self._system_prompt = [T.create_system_prompt("You are a agent nammed **Taranis**")]
    
    def manage_token_yield(self, token, is_thinking):
        return token, is_thinking
    
    def create_stream(self):
        return T.clients.openrouter_request(
            client=T.clients.openrouter(),
            messages=self._system_prompt+self.messages,
            model="nvidia/nemotron-3-nano-30b-a3b:free"
        )

gr.ChatInterface(
    fn=W.create_fn_gradio(Gradio_agent()),
    title="Open-taranis Agent"
).launch()

Use the commands :

  • taranis help : in the name...
  • taranis update : upgrade the framework
  • taranis open : open the TUI

The TUI :

TUI

  • /help to start

Documentation :

Available in French

Roadmap

  • v0.0.1: start
  • v0.0.x: Add and confirm other API providers (in the cloud, not locally)
  • v0.1.x: Functionality verifications in examples
  • v0.2.x: Add features for logic-only coding approach, start with agent_base
  • v0.3.x: Add a full agent in TUI and upgrade web client deployments
  • v0.4.x: Improving support for local AI deployment
  • The rest will follow soon.

Changelog

v0.0.x : The start
  • v0.0.4 : Add xai and groq provider
  • v0.0.6 : Add huggingface provider and args for clients.veniceai_request
v0.1.x : Gradio, commands and TUI
  • v0.1.0 : Start the docs, add update-checker and preparing for the continuation of the project...
  • v0.1.1 : Code to deploy a frontend with gradio added (no complex logic at the moment, ex: tool_calls)
  • v0.1.2 : Fixed a display bug in the web_front and experimentally added ollama as a backend
  • v0.1.3 : Fixed the memory reset in the web_front and remove ollama module for openai front (work 100 times better)
  • v0.1.4 : Fixed web_front for native use on huggingface, as well as handle_streaming which had tool retrieval issues
  • v0.1.7 : Added a TUI and commands, detection of env variables (API keys) and tools in the framework
v0.2.x : Agents
  • v0.2.0 : Adding agent_base
  • v0.2.1 : Updated agent_base and added a more concrete example of agents
  • v0.2.2 : Upgraded all the code to add Kimi Code as client and reduce code (Not official !)
  • v0.2.3 : Updated agent_base, add some functions and add a cool agent
  • v0.2.4 : Improved CoT techniques and updated web_front.py, deploy an agent to the browser in a few lines
v0.3.x : The restart
  • v0.3.0 : Rewrite all the code from scratch (without AI) to improve everything
  • v0.3.1 (future) : Add a built-in agent in the TUI + full doc in french and english

Advanced Examples

Links

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

open_taranis-0.3.0.tar.gz (44.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

open_taranis-0.3.0-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file open_taranis-0.3.0.tar.gz.

File metadata

  • Download URL: open_taranis-0.3.0.tar.gz
  • Upload date:
  • Size: 44.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for open_taranis-0.3.0.tar.gz
Algorithm Hash digest
SHA256 c173b3b91803872107c7939c9a14a0ec6c32b69b8de8b5eb78e0359ff8896007
MD5 5cea870602fea5a6997c3e2468df4fb1
BLAKE2b-256 9a64a63dba2695bcbdcdba902836c2329113102e58f5ce2817564c0cc5d8f499

See more details on using hashes here.

File details

Details for the file open_taranis-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: open_taranis-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 30.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.13

File hashes

Hashes for open_taranis-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 0b5f34a3496ec133d5a519384d90e472b521cc323d39452c032cb1f385fd3c41
MD5 23a2596e7e52037cf823862884e8fda5
BLAKE2b-256 0a3c54ea71ee84c9d74ab9a61f868062ffe1182ad2994efb37fe94259327315b

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page