Skip to main content

IntelliBricks provides a streamlined set of tools for developing AI-powered applications. It simplifies complex tasks such as interacting with LLMs, training machine learning models, and implementing Retrieval Augmented Generation (RAG). Focus on building your application logic, not wrestling with boilerplate. IntelliBricks empowers you to build intelligent applications faster and more efficiently.

Project description

Logo

Start Building Intelligence

The Python-first Framework for Agentic & LLM-Powered Applications


Stop wrestling with AI boilerplate. Start building intelligence.

IntelliBricks is the Python-first toolkit for crafting AI applications with ease. Focus on your intelligent logic, not framework complexity.

Quick Overview

Imagine this:

  • Pythonic AI: Write clean, intuitive Python – IntelliBricks handles the AI plumbing.
  • Structured Outputs, Instantly: msgspec.Struct classes define your data, IntelliBricks gets you structured LLM responses.
  • Agents that Understand: Build autonomous agents with clear tasks, instructions, and your knowledge.
  • APIs in Minutes: Deploy agents as REST APIs with FastAPI or Litestar, effortlessly.
  • Context-Aware by Default: Seamless RAG integration for informed, intelligent agents.

IntelliBricks solves AI development pain points:

  • Complexity? Gone. Streamlined, Python-first approach.
  • Framework Chaos? Controlled. Predictable, structured outputs with Python types.
  • Boilerplate? Banished. Focus on intelligence, predictability and observability. No more time setting the framework up.

Start in Seconds:

pip install intellibricks

Core Modules: Your AI Building Blocks

IntelliBricks is built around three core modules, designed for power and seamless integration:

🧠 LLMs Module: Integrate easilly with AI providers

Interact with Language Models in pure Python.

Key Features:

  • Synapses: Connect to Google Gemini, OpenAI, Groq, and more with one line of code.

    from intellibricks.llms import Synapse
    
    synapse = Synapse.of("google/genai/gemini-pro-experimental")
    completion = synapse.complete("Write a poem about Python.") # ChatCompletion[RawResponse]
    print(completion.text)
    
  • Structured Outputs: Define data models with Python classes using msgspec.Struct.

    import msgspec
    from typing import Annotated, Sequence
    from intellibricks.llms import Synapse
    
    class Summary(msgspec.Struct, frozen=True):
        title: Annotated[str, msgspec.Meta(title="Title", description="Summary Title")]
        key_points: Annotated[Sequence[str], msgspec.Meta(title="Key Points")]
    
    synapse = Synapse.of("google/genai/gemini-pro-experimental")
    prompt = "Summarize quantum computing article: [...]"
    completion = synapse.complete(prompt, response_model=Summary) # ChatCompletion[Summary]
    
    print(completion.parsed.title)
    print(completion.parsed.key_points)
    
  • Chain of Thought: Structured reasoning with ChainOfThought for observability.

    from intellibricks.llms import Synapse, ChainOfThought
    import msgspec
    
    class Response(msgspec.Struct):
        response: str
        """just to show you can combine ChainOfThought and other structured classes too"""
    
    synapse = Synapse.of("google/genai/gemini-pro-experimental")
    cot_response = synapse.complete(
        "Solve riddle: Cities, no houses...",
        response_model=ChainOfThought[Response] # You can use ChainOfThoughts[str] too!
    ) 
    
    for step in cot_response.parsed.steps:
        print(f"Step {step.step_number}: {step.explanation}")
    
    print(cot_response.parsed.final_answer) # Response
    
  • Langfuse Observability: Built-in integration for tracing and debugging.

    from intellibricks.llms import Synapse
    from langfuse import Langfuse
    
    synapse = Synapse.of(..., langfuse=Langfuse())
    

    Langfuse

🤖 Agents Module: Build Autonomous Intelligence

Craft agents to perform complex tasks.

Key Features:

  • Agent Class: Define tasks, instructions, and connect to Synapses.

    from intellibricks.agents import Agent
    from intellibricks.llms import Synapse
    
    synapse = Synapse.of("google/genai/gemini-pro-experimental")
    agent = Agent(
        task="Creative Title Generation",
        instructions=["Intriguing fantasy story titles."],
        metadata={"name": "TitleGen", "description": "Title Agent"},
        synapse=synapse,
    )
    
    agent_response = agent.run("Knight discovers dragon egg.") # AgentResponse[RawResponse]
    print(f"Agent suggests: {agent_response.text}")
    
  • Tool Calling: Equip agents with tools for real-world interaction.

  • Instant APIs: Turn agents into REST APIs with FastAPI/Litestar.

    from intellibricks.agents import Agent
    from intellibricks.llms import Synapse
    import uvicorn
    
    agent = Agent(..., synapse=Synapse.of(...))
    app = agent.fastapi_app # WIP, any bugs open an issue please!
    uvicorn.run(app, host="0.0.0.0", port=8000)
    

🏆 Why IntelliBricks? Python Purity & Power.

IntelliBricks is different. It's Python First.

  • 🐍 Idiomatic Python: Clean, modern Python – no framework jargon.
  • Simplicity & Clarity: Intuitive API, less boilerplate.
  • 🧱 Structured Outputs, Core Strength: Define Python classes, get structured data.
  • 🧠 Focus on Intelligence: Build smart apps, not infrastructure headaches.

Structured Outputs: IntelliBricks vs. LangChain & LlamaIndex

Getting structured data from LLMs is critical. Here's how IntelliBricks compares to other frameworks:

IntelliBricks:

import msgspec
from intellibricks.llms import Synapse

class Summary(msgspec.Struct, frozen=True):
    title: str
    key_points: list[str]

synapse = Synapse.of("google/genai/gemini-pro-experimental")
completion = synapse.complete(
    "Summarize article: [...]",
    response_model=Summary
) # ChatCompletion[Summary]

print(completion.parsed) # Summary object

LangChain:

from langchain_openai import ChatOpenAI
from pydantic import BaseModel, Field
from typing import Optional

class Joke(BaseModel):
    setup: str = Field(description="The setup of the joke")
    punchline: str = Field(description="The punchline to the joke")
    rating: Optional[int] = Field(default=None, description="Rating 1-10")

llm = ChatOpenAI(model="gpt-4o-mini")
structured_llm = llm.with_structured_output(Joke)
joke = structured_llm.invoke(
    "Tell me a joke about cats"
) # Dict[Unknown, Unknown] | BaseModel

print(joke) # Joke object directly

LangChain uses .with_structured_output() and Pydantic classes. While functional, it relies on Pydantic for validation and returns the Pydantic object directly via .invoke(), losing direct access to completion metadata (usage, time, etc.)

LlamaIndex:

from llama_index.llms.openai import OpenAI
from pydantic import BaseModel, Field
from datetime import datetime
import json

class Invoice(BaseModel):
    invoice_id: str = Field(...)
    date: datetime = Field(...)
    line_items: list = Field(...)

llm = OpenAI(model="gpt-4o")
sllm = llm.as_structured_llm(output_cls=Invoice)
response = llm.complete("...") # CompletionResponse

Here is what LlamaIndex' returns:

class CompletionResponse(BaseModel):
    """
    Completion response.

    Fields:
        text: Text content of the response if not streaming, or if streaming,
            the current extent of streamed text.
        additional_kwargs: Additional information on the response(i.e. token
            counts, function calling information).
        raw: Optional raw JSON that was parsed to populate text, if relevant.
        delta: New text that just streamed in (only relevant when streaming).
    """

    text: str
    additional_kwargs: dict = Field(default_factory=dict)
    raw: Optional[Any] = None # Could be anything and could be None too. Nice!
    logprobs: Optional[List[List[LogProb]]] = None
    delta: Optional[str] = None

IntelliBricks Advantage:

  • Python-First Purity: Clean, idiomatic Python.
  • Simpler Syntax: More direct and intuitive structured output definition.
  • Blazing Fast: Leverages msgspec for high-performance serialization, outperforming Pydantic.
  • Comprehensive Responses: synapse.complete() returns ChatCompletion[RawResponse | T] objects, providing not just parsed data but also full completion details (usage, timing, etc.).

Examples adapted from LangChain docs and LlamaIndex docs. IntelliBricks offers a more streamlined and efficient Python-centric approach.


🚀 Join the IntelliBricks Revolution!

Build intelligent applications, the Python way.

  • Get Started: pip install intellibricks
  • Explore: Dive into the documentation.
  • Contribute: It's community-driven!
  • Connect: Share feedback and ideas!

Let's build the future of intelligent applications, together!

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

intellibricks-0.8.19.tar.gz (2.2 MB view details)

Uploaded Source

Built Distribution

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

intellibricks-0.8.19-py3-none-any.whl (111.7 kB view details)

Uploaded Python 3

File details

Details for the file intellibricks-0.8.19.tar.gz.

File metadata

  • Download URL: intellibricks-0.8.19.tar.gz
  • Upload date:
  • Size: 2.2 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.2

File hashes

Hashes for intellibricks-0.8.19.tar.gz
Algorithm Hash digest
SHA256 63c33409d9d295e54017280983a0ec1a417882645383a8797773b904c8e048fd
MD5 ded7e84c6e0adf1a58d6e9f3f803eac1
BLAKE2b-256 f53e2e821e8f4b92d55b59ad94311130385023ba511304e26591e528e653b2a2

See more details on using hashes here.

File details

Details for the file intellibricks-0.8.19-py3-none-any.whl.

File metadata

File hashes

Hashes for intellibricks-0.8.19-py3-none-any.whl
Algorithm Hash digest
SHA256 8b2e41c3bf5b501684e6e2c538d53041e4e42ab6c0b3717d5e68613f30b21fef
MD5 84a1516767a67c44e61eace951b0819b
BLAKE2b-256 cbaf8e1dd1c4f87ad43fa3b05fddb6a3236d412e01a0cacf6075ab1f797abd1f

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