Skip to content

Instantly share code, notes, and snippets.

@maximilien
Created February 20, 2025 19:30
Show Gist options
  • Save maximilien/8ff90a7669966acbb7f92cd6cbb5b1bd to your computer and use it in GitHub Desktop.
Save maximilien/8ff90a7669966acbb7f92cd6cbb5b1bd to your computer and use it in GitHub Desktop.
Simple BeeAI Python example - Bay Area AI Meetup - San Francisco, CA - 02/20/2025
Display the source blob
Display the rendered blob
Raw
{
"cells": [
{
"cell_type": "code",
"execution_count": 2,
"id": "877a94f7-98e7-459a-9206-d62b2c156fa3",
"metadata": {},
"outputs": [],
"source": [
"# BeeAI Python (simple Bee and Bee + Tool)"
]
},
{
"cell_type": "code",
"execution_count": 3,
"id": "d1e86386-39ce-41c2-ab72-b0c8cbac8c1c",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: beeai-framework in /opt/anaconda3/lib/python3.11/site-packages (0.1.0)\n",
"Requirement already satisfied: aiofiles<25.0.0,>=24.1.0 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (24.1.0)\n",
"Requirement already satisfied: chevron<0.15.0,>=0.14.0 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (0.14.0)\n",
"Requirement already satisfied: duckduckgo-search<8.0.0,>=7.3.2 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (7.4.4)\n",
"Requirement already satisfied: litellm<2.0.0,>=1.60.2 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (1.61.11)\n",
"Requirement already satisfied: mcp<2.0.0,>=1.2.0 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (1.2.1)\n",
"Requirement already satisfied: pydantic<3.0,>=2.10 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (2.10.6)\n",
"Requirement already satisfied: pydantic-settings<3.0,>=2.7 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (2.7.1)\n",
"Requirement already satisfied: pylint<4.0.0,>=3.3.2 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (3.3.4)\n",
"Requirement already satisfied: pyventus<0.7.0,>=0.6.0 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (0.6.0)\n",
"Requirement already satisfied: requests<3.0,>=2.32 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (2.32.3)\n",
"Requirement already satisfied: types-requests<3.0.0.0,>=2.32.0.20241016 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (2.32.0.20241016)\n",
"Requirement already satisfied: wikipedia<2.0.0,>=1.4.0 in /opt/anaconda3/lib/python3.11/site-packages (from beeai-framework) (1.4.0)\n",
"Requirement already satisfied: click>=8.1.8 in /opt/anaconda3/lib/python3.11/site-packages (from duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (8.1.8)\n",
"Requirement already satisfied: httpx>=0.28.1 in /opt/anaconda3/lib/python3.11/site-packages (from httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (0.28.1)\n",
"Requirement already satisfied: lxml>=5.3.0 in /opt/anaconda3/lib/python3.11/site-packages (from duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (5.3.1)\n",
"Requirement already satisfied: aiohttp in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (3.9.3)\n",
"Requirement already satisfied: importlib-metadata>=6.8.0 in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (7.0.1)\n",
"Requirement already satisfied: jinja2<4.0.0,>=3.1.2 in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (3.1.3)\n",
"Requirement already satisfied: jsonschema<5.0.0,>=4.22.0 in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (4.23.0)\n",
"Requirement already satisfied: openai>=1.61.0 in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (1.63.2)\n",
"Requirement already satisfied: python-dotenv>=0.2.0 in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (0.21.0)\n",
"Requirement already satisfied: tiktoken>=0.7.0 in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (0.9.0)\n",
"Requirement already satisfied: tokenizers in /opt/anaconda3/lib/python3.11/site-packages (from litellm<2.0.0,>=1.60.2->beeai-framework) (0.21.0)\n",
"Requirement already satisfied: anyio>=4.5 in /opt/anaconda3/lib/python3.11/site-packages (from mcp<2.0.0,>=1.2.0->beeai-framework) (4.8.0)\n",
"Requirement already satisfied: httpx-sse>=0.4 in /opt/anaconda3/lib/python3.11/site-packages (from mcp<2.0.0,>=1.2.0->beeai-framework) (0.4.0)\n",
"Requirement already satisfied: sse-starlette>=1.6.1 in /opt/anaconda3/lib/python3.11/site-packages (from mcp<2.0.0,>=1.2.0->beeai-framework) (2.2.1)\n",
"Requirement already satisfied: starlette>=0.27 in /opt/anaconda3/lib/python3.11/site-packages (from mcp<2.0.0,>=1.2.0->beeai-framework) (0.45.3)\n",
"Requirement already satisfied: uvicorn>=0.30 in /opt/anaconda3/lib/python3.11/site-packages (from mcp<2.0.0,>=1.2.0->beeai-framework) (0.34.0)\n",
"Requirement already satisfied: annotated-types>=0.6.0 in /opt/anaconda3/lib/python3.11/site-packages (from pydantic<3.0,>=2.10->beeai-framework) (0.7.0)\n",
"Requirement already satisfied: pydantic-core==2.27.2 in /opt/anaconda3/lib/python3.11/site-packages (from pydantic<3.0,>=2.10->beeai-framework) (2.27.2)\n",
"Requirement already satisfied: typing-extensions>=4.12.2 in /opt/anaconda3/lib/python3.11/site-packages (from pydantic<3.0,>=2.10->beeai-framework) (4.12.2)\n",
"Requirement already satisfied: dill>=0.3.6 in /opt/anaconda3/lib/python3.11/site-packages (from pylint<4.0.0,>=3.3.2->beeai-framework) (0.3.7)\n",
"Requirement already satisfied: platformdirs>=2.2.0 in /opt/anaconda3/lib/python3.11/site-packages (from pylint<4.0.0,>=3.3.2->beeai-framework) (3.10.0)\n",
"Requirement already satisfied: astroid<=3.4.0-dev0,>=3.3.8 in /opt/anaconda3/lib/python3.11/site-packages (from pylint<4.0.0,>=3.3.2->beeai-framework) (3.3.8)\n",
"Requirement already satisfied: isort!=5.13.0,<7,>=4.2.5 in /opt/anaconda3/lib/python3.11/site-packages (from pylint<4.0.0,>=3.3.2->beeai-framework) (5.9.3)\n",
"Requirement already satisfied: mccabe<0.8,>=0.6 in /opt/anaconda3/lib/python3.11/site-packages (from pylint<4.0.0,>=3.3.2->beeai-framework) (0.7.0)\n",
"Requirement already satisfied: tomlkit>=0.10.1 in /opt/anaconda3/lib/python3.11/site-packages (from pylint<4.0.0,>=3.3.2->beeai-framework) (0.11.1)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0,>=2.32->beeai-framework) (2.0.4)\n",
"Requirement already satisfied: idna<4,>=2.5 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0,>=2.32->beeai-framework) (3.4)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0,>=2.32->beeai-framework) (2.0.7)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0,>=2.32->beeai-framework) (2024.8.30)\n",
"Requirement already satisfied: beautifulsoup4 in /opt/anaconda3/lib/python3.11/site-packages (from wikipedia<2.0.0,>=1.4.0->beeai-framework) (4.12.2)\n",
"Requirement already satisfied: sniffio>=1.1 in /opt/anaconda3/lib/python3.11/site-packages (from anyio>=4.5->mcp<2.0.0,>=1.2.0->beeai-framework) (1.3.0)\n",
"Requirement already satisfied: httpcore==1.* in /opt/anaconda3/lib/python3.11/site-packages (from httpx>=0.28.1->httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (1.0.2)\n",
"Requirement already satisfied: h11<0.15,>=0.13 in /opt/anaconda3/lib/python3.11/site-packages (from httpcore==1.*->httpx>=0.28.1->httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (0.14.0)\n",
"Requirement already satisfied: brotli in /opt/anaconda3/lib/python3.11/site-packages (from httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (1.0.9)\n",
"Requirement already satisfied: h2<5,>=3 in /opt/anaconda3/lib/python3.11/site-packages (from httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (4.2.0)\n",
"Requirement already satisfied: socksio==1.* in /opt/anaconda3/lib/python3.11/site-packages (from httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (1.0.0)\n",
"Requirement already satisfied: zipp>=0.5 in /opt/anaconda3/lib/python3.11/site-packages (from importlib-metadata>=6.8.0->litellm<2.0.0,>=1.60.2->beeai-framework) (3.17.0)\n",
"Requirement already satisfied: MarkupSafe>=2.0 in /opt/anaconda3/lib/python3.11/site-packages (from jinja2<4.0.0,>=3.1.2->litellm<2.0.0,>=1.60.2->beeai-framework) (2.1.3)\n",
"Requirement already satisfied: attrs>=22.2.0 in /opt/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.22.0->litellm<2.0.0,>=1.60.2->beeai-framework) (23.1.0)\n",
"Requirement already satisfied: jsonschema-specifications>=2023.03.6 in /opt/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.22.0->litellm<2.0.0,>=1.60.2->beeai-framework) (2023.7.1)\n",
"Requirement already satisfied: referencing>=0.28.4 in /opt/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.22.0->litellm<2.0.0,>=1.60.2->beeai-framework) (0.30.2)\n",
"Requirement already satisfied: rpds-py>=0.7.1 in /opt/anaconda3/lib/python3.11/site-packages (from jsonschema<5.0.0,>=4.22.0->litellm<2.0.0,>=1.60.2->beeai-framework) (0.10.6)\n",
"Requirement already satisfied: distro<2,>=1.7.0 in /opt/anaconda3/lib/python3.11/site-packages (from openai>=1.61.0->litellm<2.0.0,>=1.60.2->beeai-framework) (1.8.0)\n",
"Requirement already satisfied: jiter<1,>=0.4.0 in /opt/anaconda3/lib/python3.11/site-packages (from openai>=1.61.0->litellm<2.0.0,>=1.60.2->beeai-framework) (0.8.2)\n",
"Requirement already satisfied: tqdm>4 in /opt/anaconda3/lib/python3.11/site-packages (from openai>=1.61.0->litellm<2.0.0,>=1.60.2->beeai-framework) (4.65.0)\n",
"Requirement already satisfied: regex>=2022.1.18 in /opt/anaconda3/lib/python3.11/site-packages (from tiktoken>=0.7.0->litellm<2.0.0,>=1.60.2->beeai-framework) (2023.10.3)\n",
"Requirement already satisfied: aiosignal>=1.1.2 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp->litellm<2.0.0,>=1.60.2->beeai-framework) (1.2.0)\n",
"Requirement already satisfied: frozenlist>=1.1.1 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp->litellm<2.0.0,>=1.60.2->beeai-framework) (1.4.0)\n",
"Requirement already satisfied: multidict<7.0,>=4.5 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp->litellm<2.0.0,>=1.60.2->beeai-framework) (6.0.4)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp->litellm<2.0.0,>=1.60.2->beeai-framework) (1.9.3)\n",
"Requirement already satisfied: soupsieve>1.2 in /opt/anaconda3/lib/python3.11/site-packages (from beautifulsoup4->wikipedia<2.0.0,>=1.4.0->beeai-framework) (2.5)\n",
"Requirement already satisfied: huggingface-hub<1.0,>=0.16.4 in /opt/anaconda3/lib/python3.11/site-packages (from tokenizers->litellm<2.0.0,>=1.60.2->beeai-framework) (0.29.1)\n",
"Requirement already satisfied: hyperframe<7,>=6.1 in /opt/anaconda3/lib/python3.11/site-packages (from h2<5,>=3->httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (6.1.0)\n",
"Requirement already satisfied: hpack<5,>=4.1 in /opt/anaconda3/lib/python3.11/site-packages (from h2<5,>=3->httpx[brotli,http2,socks]>=0.28.1->duckduckgo-search<8.0.0,>=7.3.2->beeai-framework) (4.1.0)\n",
"Requirement already satisfied: filelock in /opt/anaconda3/lib/python3.11/site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm<2.0.0,>=1.60.2->beeai-framework) (3.13.1)\n",
"Requirement already satisfied: fsspec>=2023.5.0 in /opt/anaconda3/lib/python3.11/site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm<2.0.0,>=1.60.2->beeai-framework) (2023.10.0)\n",
"Requirement already satisfied: packaging>=20.9 in /opt/anaconda3/lib/python3.11/site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm<2.0.0,>=1.60.2->beeai-framework) (24.2)\n",
"Requirement already satisfied: pyyaml>=5.1 in /opt/anaconda3/lib/python3.11/site-packages (from huggingface-hub<1.0,>=0.16.4->tokenizers->litellm<2.0.0,>=1.60.2->beeai-framework) (6.0.1)\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install beeai-framework"
]
},
{
"cell_type": "code",
"execution_count": 4,
"id": "9fd268f7-7314-43dd-a72d-be6c9645d1cd",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: wikipedia in /opt/anaconda3/lib/python3.11/site-packages (1.4.0)\n",
"Requirement already satisfied: beautifulsoup4 in /opt/anaconda3/lib/python3.11/site-packages (from wikipedia) (4.12.2)\n",
"Requirement already satisfied: requests<3.0.0,>=2.0.0 in /opt/anaconda3/lib/python3.11/site-packages (from wikipedia) (2.32.3)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.0.0->wikipedia) (2.0.4)\n",
"Requirement already satisfied: idna<4,>=2.5 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.0.0->wikipedia) (3.4)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.0.0->wikipedia) (2.0.7)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3.0.0,>=2.0.0->wikipedia) (2024.8.30)\n",
"Requirement already satisfied: soupsieve>1.2 in /opt/anaconda3/lib/python3.11/site-packages (from beautifulsoup4->wikipedia) (2.5)\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install wikipedia"
]
},
{
"cell_type": "code",
"execution_count": 5,
"id": "b05945a4-f571-47cb-b282-ba56d46678ba",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Requirement already satisfied: langchain_community in /opt/anaconda3/lib/python3.11/site-packages (0.3.18)\n",
"Requirement already satisfied: langchain-core<1.0.0,>=0.3.37 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (0.3.37)\n",
"Requirement already satisfied: langchain<1.0.0,>=0.3.19 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (0.3.19)\n",
"Requirement already satisfied: SQLAlchemy<3,>=1.4 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (2.0.25)\n",
"Requirement already satisfied: requests<3,>=2 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (2.32.3)\n",
"Requirement already satisfied: PyYAML>=5.3 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (6.0.1)\n",
"Requirement already satisfied: aiohttp<4.0.0,>=3.8.3 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (3.9.3)\n",
"Requirement already satisfied: tenacity!=8.4.0,<10,>=8.1.0 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (8.2.2)\n",
"Requirement already satisfied: dataclasses-json<0.7,>=0.5.7 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (0.6.7)\n",
"Requirement already satisfied: pydantic-settings<3.0.0,>=2.4.0 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (2.7.1)\n",
"Requirement already satisfied: langsmith<0.4,>=0.1.125 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (0.3.8)\n",
"Requirement already satisfied: httpx-sse<1.0.0,>=0.4.0 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (0.4.0)\n",
"Requirement already satisfied: numpy<2,>=1.26.4 in /opt/anaconda3/lib/python3.11/site-packages (from langchain_community) (1.26.4)\n",
"Requirement already satisfied: aiosignal>=1.1.2 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (1.2.0)\n",
"Requirement already satisfied: attrs>=17.3.0 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (23.1.0)\n",
"Requirement already satisfied: frozenlist>=1.1.1 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (1.4.0)\n",
"Requirement already satisfied: multidict<7.0,>=4.5 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (6.0.4)\n",
"Requirement already satisfied: yarl<2.0,>=1.0 in /opt/anaconda3/lib/python3.11/site-packages (from aiohttp<4.0.0,>=3.8.3->langchain_community) (1.9.3)\n",
"Requirement already satisfied: marshmallow<4.0.0,>=3.18.0 in /opt/anaconda3/lib/python3.11/site-packages (from dataclasses-json<0.7,>=0.5.7->langchain_community) (3.26.1)\n",
"Requirement already satisfied: typing-inspect<1,>=0.4.0 in /opt/anaconda3/lib/python3.11/site-packages (from dataclasses-json<0.7,>=0.5.7->langchain_community) (0.9.0)\n",
"Requirement already satisfied: langchain-text-splitters<1.0.0,>=0.3.6 in /opt/anaconda3/lib/python3.11/site-packages (from langchain<1.0.0,>=0.3.19->langchain_community) (0.3.6)\n",
"Requirement already satisfied: pydantic<3.0.0,>=2.7.4 in /opt/anaconda3/lib/python3.11/site-packages (from langchain<1.0.0,>=0.3.19->langchain_community) (2.10.6)\n",
"Requirement already satisfied: jsonpatch<2.0,>=1.33 in /opt/anaconda3/lib/python3.11/site-packages (from langchain-core<1.0.0,>=0.3.37->langchain_community) (1.33)\n",
"Requirement already satisfied: packaging<25,>=23.2 in /opt/anaconda3/lib/python3.11/site-packages (from langchain-core<1.0.0,>=0.3.37->langchain_community) (24.2)\n",
"Requirement already satisfied: typing-extensions>=4.7 in /opt/anaconda3/lib/python3.11/site-packages (from langchain-core<1.0.0,>=0.3.37->langchain_community) (4.12.2)\n",
"Requirement already satisfied: httpx<1,>=0.23.0 in /opt/anaconda3/lib/python3.11/site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (0.28.1)\n",
"Requirement already satisfied: orjson<4.0.0,>=3.9.14 in /opt/anaconda3/lib/python3.11/site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (3.10.15)\n",
"Requirement already satisfied: requests-toolbelt<2.0.0,>=1.0.0 in /opt/anaconda3/lib/python3.11/site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (1.0.0)\n",
"Requirement already satisfied: zstandard<0.24.0,>=0.23.0 in /opt/anaconda3/lib/python3.11/site-packages (from langsmith<0.4,>=0.1.125->langchain_community) (0.23.0)\n",
"Requirement already satisfied: python-dotenv>=0.21.0 in /opt/anaconda3/lib/python3.11/site-packages (from pydantic-settings<3.0.0,>=2.4.0->langchain_community) (0.21.0)\n",
"Requirement already satisfied: charset-normalizer<4,>=2 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3,>=2->langchain_community) (2.0.4)\n",
"Requirement already satisfied: idna<4,>=2.5 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3,>=2->langchain_community) (3.4)\n",
"Requirement already satisfied: urllib3<3,>=1.21.1 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3,>=2->langchain_community) (2.0.7)\n",
"Requirement already satisfied: certifi>=2017.4.17 in /opt/anaconda3/lib/python3.11/site-packages (from requests<3,>=2->langchain_community) (2024.8.30)\n",
"Requirement already satisfied: anyio in /opt/anaconda3/lib/python3.11/site-packages (from httpx<1,>=0.23.0->langsmith<0.4,>=0.1.125->langchain_community) (4.8.0)\n",
"Requirement already satisfied: httpcore==1.* in /opt/anaconda3/lib/python3.11/site-packages (from httpx<1,>=0.23.0->langsmith<0.4,>=0.1.125->langchain_community) (1.0.2)\n",
"Requirement already satisfied: h11<0.15,>=0.13 in /opt/anaconda3/lib/python3.11/site-packages (from httpcore==1.*->httpx<1,>=0.23.0->langsmith<0.4,>=0.1.125->langchain_community) (0.14.0)\n",
"Requirement already satisfied: jsonpointer>=1.9 in /opt/anaconda3/lib/python3.11/site-packages (from jsonpatch<2.0,>=1.33->langchain-core<1.0.0,>=0.3.37->langchain_community) (2.1)\n",
"Requirement already satisfied: annotated-types>=0.6.0 in /opt/anaconda3/lib/python3.11/site-packages (from pydantic<3.0.0,>=2.7.4->langchain<1.0.0,>=0.3.19->langchain_community) (0.7.0)\n",
"Requirement already satisfied: pydantic-core==2.27.2 in /opt/anaconda3/lib/python3.11/site-packages (from pydantic<3.0.0,>=2.7.4->langchain<1.0.0,>=0.3.19->langchain_community) (2.27.2)\n",
"Requirement already satisfied: mypy-extensions>=0.3.0 in /opt/anaconda3/lib/python3.11/site-packages (from typing-inspect<1,>=0.4.0->dataclasses-json<0.7,>=0.5.7->langchain_community) (1.0.0)\n",
"Requirement already satisfied: sniffio>=1.1 in /opt/anaconda3/lib/python3.11/site-packages (from anyio->httpx<1,>=0.23.0->langsmith<0.4,>=0.1.125->langchain_community) (1.3.0)\n",
"Note: you may need to restart the kernel to use updated packages.\n"
]
}
],
"source": [
"pip install langchain_community"
]
},
{
"cell_type": "code",
"execution_count": 6,
"id": "7e99aabc-9e9e-4201-ad4c-9ddfa702faeb",
"metadata": {},
"outputs": [
{
"name": "stderr",
"output_type": "stream",
"text": [
"/opt/anaconda3/lib/python3.11/site-packages/pydantic/_internal/_fields.py:192: UserWarning: Field name \"schema\" in \"ChatModelStructureInput\" shadows an attribute in parent \"BaseModel\"\n",
" warnings.warn(\n"
]
}
],
"source": [
"import asyncio\n",
"\n",
"from beeai_framework.agents.bee.agent import BeeAgent\n",
"from beeai_framework.agents.types import BeeInput, BeeRunInput, BeeRunOutput\n",
"from beeai_framework.backend.chat import ChatModel\n",
"from beeai_framework.memory.unconstrained_memory import UnconstrainedMemory\n",
"from beeai_framework.tools.weather.openmeteo import OpenMeteoTool"
]
},
{
"cell_type": "code",
"execution_count": 7,
"id": "0c7b80c3-d933-4487-9835-2b3e0d5d210c",
"metadata": {},
"outputs": [],
"source": [
"# Create LLM instance\n",
"llm = await ChatModel.from_name(\"ollama:granite3.1-dense:8b\")"
]
},
{
"cell_type": "code",
"execution_count": 27,
"id": "d8051ce3-bbb1-4485-bb54-37cc1f54ddbd",
"metadata": {},
"outputs": [],
"source": [
"# Simple Agent (no tools)"
]
},
{
"cell_type": "code",
"execution_count": 8,
"id": "ba5d554a-cae1-4b68-acce-8a711e7f66a2",
"metadata": {},
"outputs": [],
"source": [
"agent = BeeAgent(bee_input=BeeInput(llm=llm, tools=[], memory=UnconstrainedMemory()))"
]
},
{
"cell_type": "code",
"execution_count": 9,
"id": "7277f69c-9616-4970-ba3d-0d6365302aec",
"metadata": {},
"outputs": [],
"source": [
"result: BeeRunOutput = await agent.run(run_input=BeeRunInput(prompt=\"What is the capital of California?\"))"
]
},
{
"cell_type": "code",
"execution_count": 10,
"id": "0e830304-3b83-4d19-8f81-368f213d36c9",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The capital of California is Sacramento.\n"
]
}
],
"source": [
"print(result.result.text)"
]
},
{
"cell_type": "code",
"execution_count": 11,
"id": "1fff5df0-0584-4d75-872c-2f34fec7aea7",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Sacramento was founded during the California Gold Rush in 1848 and became the state's capital upon joining the Union in 1850. It has since grown into a major agricultural and transportation center.\n"
]
}
],
"source": [
"result: BeeRunOutput = await agent.run(run_input=BeeRunInput(prompt=\"Tell me a brief history of the capital of California?\"))\n",
"print(result.result.text)"
]
},
{
"cell_type": "code",
"execution_count": 12,
"id": "f53372a4-4da6-44da-bb53-bdc7b7104bef",
"metadata": {},
"outputs": [],
"source": [
"# Agents with tools"
]
},
{
"cell_type": "code",
"execution_count": 13,
"id": "73fc31d4-55fe-4f89-9cb6-31b6081784cc",
"metadata": {},
"outputs": [],
"source": [
"agent = BeeAgent(bee_input=BeeInput(llm=llm, tools=[OpenMeteoTool()], memory=UnconstrainedMemory()))"
]
},
{
"cell_type": "code",
"execution_count": 14,
"id": "7c42d75c-e9c2-4713-852c-920eb61f8d50",
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"The current temperature in San Francisco is 14.3 degrees Celsius, with no rain and a wind speed of 7.9 km/h.\n"
]
}
],
"source": [
"result: BeeRunOutput = await agent.run(run_input=BeeRunInput(prompt=\"What is the weather in San Francisco today?\"))\n",
"print(result.result.text)"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "Python 3 (ipykernel)",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.11.7"
}
},
"nbformat": 4,
"nbformat_minor": 5
}
@maximilien
Copy link
Author

Ideally we should get to something like this for the code

from beeai.tools import OpenMeteoTool
from beeai.framework import ChatModel, BeeAgent

llm = ChatModel.for_name(“ollama…”)
agent = BeeAgent(llm=llm, tools=[OpenMeteoTool()], memory=UnconstrainedMemory())
agent.run("What…”).observe(lambda result: print(result.text))

@ajbozarth
Copy link

After talking to Tomas about this a bit I opened i-am-bee/beeai-framework#385 and https://github.com/orgs/i-am-bee/discussions/386 to track these feature requests

@maximilien
Copy link
Author

👍 @ajbozarth

@ajbozarth
Copy link

Also worth noting that the first one is an issue because Tomas already had it on his mind as an improvement to bring up this week, whereas the second ones a discussion because he's worried that it will be a large API change needed on both implementations and thus should be discussed before committing to implementation

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment