Skip to main content

KISS AI Stack's AI Agent Builder - Simplify AI Agent Development

Project description

KISS AI Stack Banner

KISS AI Stack - Core

Effortless AI Agent Building

Welcome to the core of the KISS AI Stack! This module helps you build an AI agent effortlessly using a simple YAML configuration file. Say goodbye to boilerplate code and embrace minimalism with the KISS principle (Keep It Simple, Stupid).


Features

  • Centralized Agent Management: Manage multiple session-based AI agents with lifecycle support.
  • Minimal Dependencies: Built using simple, vanilla vendor libraries.
  • Tool Classification: Configure tools for your agent to handle specific tasks easily.
  • Supports RAG and Prompt-Based Models: Choose the model type that suits your needs.
  • Thread-Safe: Reliable operation in multi-threaded environments.

Installation

Install the core module using pip:

pip install kiss-ai-stack-core

Example Configuration

Here’s an example YAML configuration to set up an AI agent with different tools:

agent:
  decision_maker: # Required for tool classification
    name: decision_maker
    role: classify tools for given queries
    kind: prompt  # Choose from 'rag' or 'prompt'
    ai_client:
      provider: openai
      model: gpt-4
      api_key: <your-api-key>

  tools:
    - name: general_queries
      role: process other queries if no suitable tool is found.
      kind: prompt
      ai_client:
        provider: openai
        model: gpt-4
        api_key: <your-api-key>

    - name: document_tool
      role: process documents and provide answers based on them.
      kind: rag  # Retrieval-Augmented Generation
      embeddings: text-embedding-ada-002
      ai_client:
        provider: openai
        model: gpt-4
        api_key: <your-api-key>

  vector_db:
    provider: chroma
    kind: remote # Choose in-memory, storage or remote options.
    host: 0.0.0.0
    port: 8000
    secure: false

Example Python Usage

Use the core module to build and interact with your AI agent:

from kiss_ai_stack import AgentStack

async def main():
    try:
        # Initialize an agent in the stack
        await AgentStack.bootstrap_agent(agent_id="my_agent", temporary=True)

        # Process a query
        response = await AgentStack.generate_answer(agent_id="my_agent", query="What is KISS AI Stack?")
        print(response.answer)

    except Exception as ex:
        print(f"An error occurred: {ex}")

# Run the example
import asyncio
asyncio.run(main())

How It Works

  1. Agent Initialization: Use AgentStack.bootstrap_agent to initialize agents with their configuration and resources.
  2. Query Processing: Process queries with AgentStack.generate_answer, leveraging tools and AI clients defined in the YAML configuration.
  3. Tool Management: Define tools to handle specific tasks like document processing or query classification.
  4. Vector Database: Use the vector_db section to define how document embeddings are stored and retrieved for RAG-based tasks. Currently, Chroma is supported.

Documentation

Key Methods

  • bootstrap_agent(agent_id: str, temporary: bool): Initialize a new agent session.
  • generate_answer(agent_id: str, query: Union[str, Dict, List]): Process a query and return a response.

Configuration Highlights

  • AI Client: Configure the provider, model, and API key for supported services like OpenAI.
  • Tools: Define tools such as general-purpose query handlers or document processors.
  • Vector Database: Set up in-memory or persistent storage for RAG-based tasks.

Contributing

We welcome contributions! Submit pull requests or open issues to improve this stack.


License

This project is licensed under the MIT License. See the LICENSE file for details.

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

kiss_ai_stack_core-0.1.0a19.tar.gz (25.5 kB view details)

Uploaded Source

Built Distribution

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

kiss_ai_stack_core-0.1.0a19-py3-none-any.whl (34.1 kB view details)

Uploaded Python 3

File details

Details for the file kiss_ai_stack_core-0.1.0a19.tar.gz.

File metadata

  • Download URL: kiss_ai_stack_core-0.1.0a19.tar.gz
  • Upload date:
  • Size: 25.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.0 CPython/3.12.7

File hashes

Hashes for kiss_ai_stack_core-0.1.0a19.tar.gz
Algorithm Hash digest
SHA256 47a8af7b235e1bf691b9dc080a9c4c51c890dedb83c3e672f70d6570a8cdd08c
MD5 0e227b9ef134f84f72800e9115cef7e6
BLAKE2b-256 8ab50ee23c40d22e7f15edb20f82aa8195cc92c7ed3c6a150adcd94afdc95c46

See more details on using hashes here.

File details

Details for the file kiss_ai_stack_core-0.1.0a19-py3-none-any.whl.

File metadata

File hashes

Hashes for kiss_ai_stack_core-0.1.0a19-py3-none-any.whl
Algorithm Hash digest
SHA256 56c61e3d9ae42c716da3a3d7ad4a3ade2acd17c97c6b5713fbde208400413c2c
MD5 81070728423fc739bbdae54fd94d6d41
BLAKE2b-256 0ac5b31aecd5f7e2d0a09dddc73ea964e4e09d9f55da0ab1f3eefbc91f88d032

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