Skip to main content

Naive Knowledge Base

A dependency graph analyzer using smolagents for building and analyzing code dependencies.

Features

  • 🔍 Dependency Graph Generation: Automatically generate dependency graphs from source code
  • 🤖 AI-Powered Analysis: Uses smolagents for intelligent code analysis
  • 📊 Multiple Language Support: Support for Java and other languages
  • 🌳 Directory Tree Visualization: Generate visual representations of project structure
  • 📝 File Operations: Read, write, and manage files programmatically

Installation

From Source

git clone https://github.com/yourusername/naive-knowledge-base.git
cd naive-knowledge-base
pip install -e .

From PyPI (when published)

pip install naive-knowledge-base

Requirements

  • Python 3.8+
  • OpenAI API key (or compatible API)

Configuration

Create a .env file in your project directory with the following:

OPENAI_API_KEY=your_api_key_here
# Or configure your API endpoint
API_BASE_URL=your_api_base_url

Usage

Command Line Interface

After installation, you can use the naive-kb command:

# Basic usage
naive-kb /path/to/source/directory

# Specify file extensions
naive-kb /path/to/source/directory java

# Specify directories to ignore
naive-kb /path/to/source/directory java "target,.git,test,node_modules"

Python API

from naive_knowledge_base import run_analysis

# Run dependency graph analysis
result = run_analysis(
    source_directory="/path/to/source",
    file_extensions="java",
    ignore_dirs="target,.git,test"
)

Advanced Usage

from smolagents import CodeAgent, ToolCallingAgent
from naive_knowledge_base.api_models import FlowApiModel
from naive_knowledge_base.tools import (
    save_content_to_file,
    read_file_content,
    delete_folder_or_file,
    generate_folder_tree
)
from naive_knowledge_base.agents.dependency_graph import generate_dependency_graph

# Create custom agents
model = FlowApiModel(model_id="gpt-4.1", temperature=0.5)

dependency_agent = ToolCallingAgent(
    tools=[generate_dependency_graph],
    model=model,
    max_steps=7,
    name="dependency_graph_agent"
)

manager_agent = CodeAgent(
    managed_agents=[dependency_agent],
    model=model,
    tools=[read_file_content, save_content_to_file],
    max_steps=30,
    name="tech_lead_agent"
)

# Run analysis
result = manager_agent.run("Analyze dependencies in /path/to/source")

Package Structure

naive_knowledge_base/
├── agents/
│   ├── common/          # Common agent utilities
│   │   ├── base.py
│   │   ├── exceptions.py
│   │   ├── logging.py
│   │   └── utils.py
│   └── dependency_graph/  # Dependency graph analysis
│       ├── agent.py
│       └── model.py
├── api_models/          # API model integrations
│   └── flow_api_model.py
└── tools/              # Agent tools
    ├── io.py           # File I/O operations
    └── tree.py         # Directory tree generation

Development

Setup Development Environment

# Clone the repository
git clone https://github.com/yourusername/naive-knowledge-base.git
cd naive-knowledge-base

# Create virtual environment
python -m venv venv
source venv/bin/activate  # On Windows: venv\Scripts\activate

# Install in editable mode with dev dependencies
pip install -e ".[dev]"

Running Tests

pytest tests/

Code Formatting

# Format code
black .
isort .

# Check code quality
pylint naive_knowledge_base/

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/AmazingFeature)
  3. Commit your changes (git commit -m 'Add some AmazingFeature')
  4. Push to the branch (git push origin feature/AmazingFeature)
  5. Open a Pull Request

License

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

Acknowledgments

  • Built with smolagents
  • Uses OpenAI API for AI-powered analysis

Support

For issues and questions, please file an issue on the GitHub repository.

Metadata

Release files for naive-knowledge-base 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for naive-knowledge-base 0.2.2
File Size Uploaded
naive_knowledge_base-0.2.2.tar.gz 22.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for naive-knowledge-base 0.2.2
File Interpreter ABI Platform
naive_knowledge_base-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 47.3 kB

Release files / naive_knowledge_base-0.2.2.tar.gz

Download URL naive_knowledge_base-0.2.2.tar.gz
Size 22.7 kB
Tags Source
SHA-256 checksum
How to use checksums
ea0fb65235d1529c30d8a5d4e75700e43d1310422cb3d7732e411ac712be2060
BLAKE2b-256 checksum
How to use checksums
85c8f661298a4c6ba3ffdc13f07c3fcc70413ee3ae1d085a0b7d8a8f501980c1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release files / naive_knowledge_base-0.2.2-py3-none-any.whl

Download URL naive_knowledge_base-0.2.2-py3-none-any.whl
Size 24.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
05bd06ec77a1f75f0154f175256b3e792b36829ccc594241fdd429332cdd4e98
BLAKE2b-256 checksum
How to use checksums
9ffced4c963932285a27efc19128192fd877561b644fc364c31eaca059f1dbdd
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.12

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page