# Introduction

## What is Bitca?

**Bitca is a framework for building multi-modal** humans**and workflows.**

* **Build** humans**with memory, knowledge, tools and reasoning.**
* **Build teams of** humans **that can work together to solve problems.**
* **Interact with your** humans**and workflows using a beautiful H**uman **UI.**<br>

### Key Features <a href="#key-features" id="key-features"></a>

* Simple & Elegant
* Powerful & Flexible
* Multi-Modal by default
* Multi-Human orchestration
* A beautiful Human UI to chat with your humans
* Humans RAG built-in
* Structured outputs
* Reasoning built-in
* Monitoring & Debugging built-in

### &#x20;Install <a href="#install" id="install"></a>

```sh
// pip install -U bitca
```

### Simple & Elegant <a href="#simple-and-elegant" id="simple-and-elegant"></a>

Bitca Humans are simple and elegant, resulting in minimal, beautiful code.

For example, you can create a web search human in 10 lines of code.

#### Setup <a href="#setup" id="setup"></a>

1

Setup your virtual environment

MacWindows

```bash
python3 -m venv aienv
aienv/scripts/activate
```

2

Install libraries

MacWindows

```bash
pip install -U bitca openai duckduckgo-search
```

3

Export your OpenAI key

Bitca works with most model providers but for these examples let’s use OpenAI.

MacWindows

```bash
setx OPENAI_API_KEY sk-***
```

You can get an API key from [here](https://platform.openai.com/account/api-keys).

4

Run the human

```shell
python web_search.py
```

### [​](https://docs.phidata.com/introduction#powerful-and-flexible)Powerful & Flexible <a href="#powerful-and-flexible" id="powerful-and-flexible"></a>

Bitca humans can use multiple tools and follow instructions to achieve complex tasks.

For example, you can create a finance human with tools to query financial data.

1

Create a finance human

finance\_human.py

```python
from bitca.human import Humans 
from bitca.model.openai import OpenAIChat
from bitca.tools.yfinance import YFinanceTools

finance_human = Human(
    name="Finance Agent",
    model=OpenAIChat(id="gpt-4o"),
    tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True, company_news=True)],
    instructions=["Use tables to display data"],
    show_tool_calls=True,
    markdown=True,
)
finance_human.print_response("Summarize analyst recommendations for NVDA", stream=True)
```

2

Run the human

Install libraries

```shell
pip install yfinance
```

Run the human

```shell
python finance_human.py
```

### [​](https://docs.phidata.com/introduction#multi-modal-by-default)Multi-Modal by default <a href="#multi-modal-by-default" id="multi-modal-by-default"></a>

Bitca humans support text, images, audio and video.

For example, you can create an image human that can understand images and make tool calls as needed

1

Create an image human

image\_human.py

```python
from bitca.human import Human
from bitca.model.openai import OpenAIChat
from bitca.tools.duckduckgo import DuckDuckGo

human= Human(
    model=OpenAIChat(id="gpt-4o"),
    tools=[DuckDuckGo()],
    markdown=True,
)

human.print_response(
    "Tell me about this image and give me the latest news about it.",
    images=["https://upload.wikimedia.org/wikipedia/commons/b/bf/Krakow_-_Kosciol_Mariacki.jpg"],
    stream=True,
)
```

2

Run the human

```shell
python image_human.py
```

### [​](https://docs.phidata.com/introduction#multi-agent-orchestration)Multi-Human orchestration <a href="#multi-agent-orchestration" id="multi-agent-orchestration"></a>

Bitca humans can work together as a team to achieve complex tasks.

1

Create an human team

human\_team.py

```python
from bitca.human import Human
from bitca.model.openai import OpenAIChat
from bitca.tools.duckduckgo import DuckDuckGo
from bitca.tools.yfinance import YFinanceTools

web_human = Human(
    name="Web Human",
    role="Search the web for information",
    model=OpenAIChat(id="gpt-4o"),
    tools=[DuckDuckGo()],
    instructions=["Always include sources"],
    show_tool_calls=True,
    markdown=True,
)

finance_human = Human(
    name="Finance Human",
    role="Get financial data",
    model=OpenAIChat(id="gpt-4o"),
    tools=[YFinanceTools(stock_price=True, analyst_recommendations=True, company_info=True)],
    instructions=["Use tables to display data"],
    show_tool_calls=True,
    markdown=True,
)

human_team = Human(
    team=[web_human, finance_human],
    instructions=["Always include sources", "Use tables to display data"],
    show_tool_calls=True,
    markdown=True,
)

human_team.print_response("Summarize analyst recommendations and share the latest news for NVDA", stream=True)
```

2

Run the human team

Run the human team

```shell
python human_team.py
```

### [​](https://docs.phidata.com/introduction#continue-reading)Continue reading <a href="#continue-reading" id="continue-reading"></a>

* Chat with your Humans using a beautiful Human UI.
* [More examples](https://docs.phidata.com/more-examples)
* [Monitoring & Debugging](https://docs.phidata.com/monitoring)
