Skip to main content

Tools for human-machine interaction based on large language models.

Project description

chattools

The most simple tool for AI chat, such as gemini, deepseek, ollama

plz save the API keys in .env.key file in the current path.

Example

run python path/to/test.py (deepseek)

run python path/to/test-mistral.py to utilize mistral AI.

Make CLI

create ollama-chat.py

#!/usr/bin/env python3

# default model is `gpt-oss:120b`

from chattools import OllamaChat

description="Intelligent enough to help me for anything."
name="Asistant"

with OllamaChat(description=description, name=name) as chat:
    chat.run()

run chmod dommand and ollama-chat.py

Code

# import YourLLM API 
from mixin import ChatMixin
from utils import get_api_key

# api_key = get_api_key


class YourChat(ChatMixin, YourLLM):

    def __init__(self, description=None, history=[], name='Assistant', model="model-name", *args, **kwargs):
        super().__init__(api_key=api_key, *args, **kwargs)  # init method of super class
        self.description = description
        self.name = name
        self.model = model
        self.chat_params = {}

        self.history = history

    def _reply(self, messages, max_retries=100):
        """The wrapper method of the original `chat` method
        """

        k = 0
        while True:
            # try `max_retries` times
            try:
                """
                get the response of the model. such as 
                self.chat.completions.create(
                        model=self.model,
                        messages=messages,
                        **self.chat_params)
                """
            except:
                ...

Commands

register a command as follows

from chat_tools.commands import Commands

@Commands.register("read")
def read_history(obj, path):
    # obj.history = read from `path`
    pass

use the command in the chat as !read path


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

chat_tools-2.3.tar.gz (8.1 kB view details)

Uploaded Source

Built Distribution

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

chat_tools-2.3-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

Details for the file chat_tools-2.3.tar.gz.

File metadata

  • Download URL: chat_tools-2.3.tar.gz
  • Upload date:
  • Size: 8.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for chat_tools-2.3.tar.gz
Algorithm Hash digest
SHA256 fc84a044a78fa3d5b070da2efcdcb9b982dd9fe54b7003c74ca9780769279536
MD5 52d1dfd86184aba85df457e1ac8e25b5
BLAKE2b-256 c1e276de6d85d7248612cda24aaa8427e45f9f3f6f75f4b7694fe3b3d052c24e

See more details on using hashes here.

Provenance

The following attestation bundles were made for chat_tools-2.3.tar.gz:

Publisher: python-publish.yml on Freakwill/chat-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file chat_tools-2.3-py3-none-any.whl.

File metadata

  • Download URL: chat_tools-2.3-py3-none-any.whl
  • Upload date:
  • Size: 11.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for chat_tools-2.3-py3-none-any.whl
Algorithm Hash digest
SHA256 64a673c390c43731f4ed746ea14cf82b7babec2f25ca9a3e33bcc6d91deb424f
MD5 b9a8356c6a869ddfa66184976b4b3521
BLAKE2b-256 94e6be66a7d181d55790207a1082ba820b2db509b083bd610250aa651610a594

See more details on using hashes here.

Provenance

The following attestation bundles were made for chat_tools-2.3-py3-none-any.whl:

Publisher: python-publish.yml on Freakwill/chat-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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