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

# 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()

if __name__ == "__main__":
    from fire import Fire
    Fire()

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.1.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.1-py3-none-any.whl (11.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: chat_tools-2.1.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.1.tar.gz
Algorithm Hash digest
SHA256 7f31f8bcced858282f7d836ca7648a101495a9d0ab2566ee7b06d667c15e105f
MD5 b33f064830992c84e8d6d84a282f110a
BLAKE2b-256 f911a5159f394d15c9992b13de12b4acc110868fae5b54e345f06ad773cec05f

See more details on using hashes here.

Provenance

The following attestation bundles were made for chat_tools-2.1.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.1-py3-none-any.whl.

File metadata

  • Download URL: chat_tools-2.1-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.1-py3-none-any.whl
Algorithm Hash digest
SHA256 e3e74a323104f6240a7d212b424531759e8e86e8feb02ff7c56a64fdcb6fac44
MD5 10bc983193ee1772ae15aabe9fdd1410
BLAKE2b-256 21f44b1166774dab4738ab899fd948e42a89943706c7c0ae4288105d98138b9a

See more details on using hashes here.

Provenance

The following attestation bundles were made for chat_tools-2.1-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