Metadata-Version: 2.4
Name: conversekit
Version: 0.0.1
Summary: A modular Python library for building conversational AI backends.
Author: Mohammed Hamza
License-Expression: MIT
Keywords: ai,llm,rag,conversational-ai,chatbot,retrieval,memory,vector-database,embeddings,python
Classifier: Development Status :: 2 - Pre-Alpha
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Science/Research
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Operating System :: OS Independent
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Dynamic: license-file

> 🚧 **Status:** ConverseKit is currently in **Pre-Alpha**. The package has been published to reserve the project name while the architecture and implementation are actively being developed.

# ConverseKit

<p align="center">
  <b>Build conversational AI backends by composing infrastructure instead of implementing it.</b>
</p>

<p align="center">
An open-source Python library for building modular conversational AI applications.
</p>

---

## Why ConverseKit?

Every conversational AI application ends up implementing the same backend infrastructure:

- Conversation management
- Document ingestion
- Parsing & chunking
- Embedding generation
- Vector database integration
- Retrieval pipelines
- Memory management
- Context assembly
- Prompt orchestration
- LLM integrations

Most of this code isn't unique to your application.

ConverseKit eliminates this repetitive engineering by providing reusable, configurable modules that work together through a consistent architecture.

Instead of writing backend infrastructure, developers simply compose it.

---

# Philosophy

ConverseKit is built around one simple idea:

> **Developers should build AI applications, not AI infrastructure.**

Every major component is modular, interchangeable, and independently configurable.

Choose the techniques you want.

ConverseKit handles how they work together.

---

# Features

## 📄 Modular Document Pipeline

Configure your document pipeline instead of implementing it.

- Multiple document loaders
- Configurable parsers
- Chunking strategies
- Metadata extraction
- Embedding generation
- Vector database indexing

---

## 🔍 Pluggable Retrieval

Swap retrieval strategies without modifying your application.

Examples include:

- Naive RAG
- Hybrid Search
- Parent Document Retrieval
- Multi Query Retrieval
- Corrective RAG
- Custom Retrieval Strategies

---

## 🧠 Modular Memory

Support different memory systems through a common interface.

Examples:

- Sliding Window Memory
- Long-Term Memory
- Branch Memory
- Custom Memory Providers

---

## 🌳 Branch-aware Conversations

ConverseKit treats conversations as first-class objects.

Applications can support:

- Multiple conversations
- Conversation branching
- Branch switching
- Branch-aware context assembly
- Context inheritance

---

## 🧩 Context Assembly

Context assembly is a core component of ConverseKit.

Instead of simply retrieving documents, ConverseKit intelligently combines:

- User message
- Conversation history
- Retrieved documents
- Long-term memory
- Branch history
- System prompts

before generating a response.

---

## 📊 Evaluation

Compare different pipelines scientifically.

Measure:

- Context Relevance
- Faithfulness
- Answer Relevance
- Precision@K
- Recall@K

Developers can evaluate retrieval strategies and choose the best-performing pipeline for their application.

---

## 🔌 Provider Abstraction

Swap providers without changing application logic.

Supported provider types include:

- LLM Providers
- Embedding Providers
- Vector Databases
- Rerankers

---

# Example

```python
from conversekit import Application

app = Application(

    ingestion=DocumentPipeline(

        parser=PyMuPDFParser(),

        chunker=RecursiveChunker(),

        embedding=BGEEmbedding(),

        vectordb=Qdrant()
    ),

    retrieval=HybridRetriever(),

    memory=SlidingMemory(),

    llm=GeminiProvider()

)

response = app.chat(
    "Summarize Chapter 5"
)
```

Notice that no backend infrastructure is implemented.

The developer simply describes the pipeline they want.

---

# Modular Architecture

```
                User
                  │
                  ▼
          Conversation Manager
                  │
                  ▼
        Document Retrieval Pipeline
                  │
                  ▼
          Context Assembly
                  │
                  ▼
          Prompt Builder
                  │
                  ▼
             LLM Provider
                  │
                  ▼
              Response
```

Every stage is independently replaceable.

---

# Design Principles

- Modular by default
- Interface-driven architecture
- Provider independent
- Retrieval independent
- Memory independent
- Easy to extend
- Easy to understand
- Easy to evaluate

---

# Example Applications

ConverseKit can serve as the backend for:

- Educational Tutors
- PDF Chat Applications
- Legal Assistants
- Medical Assistants
- Customer Support Bots
- Research Assistants
- Enterprise Knowledge Assistants
- Internal Company Chatbots

---

# Roadmap

## Core

- [ ] Conversation Management
- [ ] Document Ingestion
- [ ] Context Assembly
- [ ] Memory Framework
- [ ] Retrieval Framework
- [ ] Prompt Builder
- [ ] Provider Abstractions

## Retrieval

- [ ] Naive RAG
- [ ] Hybrid RAG
- [ ] Parent Document Retrieval
- [ ] Corrective RAG
- [ ] Multi Query Retrieval
- [ ] Branch-aware Retrieval

## Evaluation

- [ ] Retrieval Benchmarks
- [ ] Faithfulness Metrics
- [ ] Context Metrics
- [ ] Latency Benchmarks

## Future

- [ ] Agentic Workflows
- [ ] Vision Support
- [ ] MCP Integration
- [ ] Multimodal Pipelines

---

# Current Status

🚧 ConverseKit is currently under active development.

The project is being designed with a strong focus on modularity, extensibility, and developer experience.

---

# Vision

The goal of ConverseKit is to become the foundation developers reach for whenever they build a conversational AI application.

Whether you're creating a prototype, a research project, a startup MVP, or a production system, ConverseKit should allow you to assemble a complete conversational AI backend by configuring reusable components instead of rebuilding infrastructure from scratch.

---

# License

MIT License
