AI Powered Data Agent framework, a comprehensive solution for data analysis, engineering, and visualization.
Our platform leverages a combination of cutting-edge technologies and frameworks:
- Langchain: Facilitates the seamless integration of language models into application workflows, significantly enhancing AI interaction capabilities.
- Reflex: An open-source framework for quickly building beautiful, interactive web applications in pure Python
- Apache Arrow: A cross-language development platform for in-memory data that specifies a standardized language-independent columnar memory format for flat and hierarchical data, organized for efficient analytic operations on modern hardware like CPUs and GPUs.
- Jupyter Ai Magics: A JupyterLab extension that provides a set of magics for working with AI models.
- Amundsen: A data discovery and metadata platform that helps users discover, understand, and trust the data they use.
- Ibis: A Python data analysis framework that provides a pandas-like API for analytics on large datasets.
- Feast: An operational feature store for managing and serving machine learning features to models in production.
Simply install the package using pip:
pip install ryoma_aiOr with extra dependencies:
pip install ryoma_ai[snowflake]Below is an example of using Ryoma to connect to a postgres database and ask a question. You can read more details in the documentation.
from ryoma_ai import Ryoma
from ryoma_data import DataSource
# Connect to a postgres database
datasource = DataSource(
"postgres",
host="localhost",
port=5432,
database="dbname",
user="user",
password="password"
)
# Create Ryoma instance and SQL agent
ryoma = Ryoma(datasource=datasource)
agent = ryoma.sql_agent(model="gpt-4", mode="enhanced")
# Ask question to the agent
agent.stream("I want to get the top 5 customers which making the most purchases", display=True)The Sql agent will try to run the tool as shown below:
================================ Human Message =================================
I want to get the top 5 customers which making the most purchases
================================== Ai Message ==================================
Tool Calls:
sql_database_query (call_mWCPB3GQGOTLYsvp21DGlpOb)
Call ID: call_mWCPB3GQGOTLYsvp21DGlpOb
Args:
query: SELECT C.C_NAME, SUM(L.L_EXTENDEDPRICE) AS TOTAL_PURCHASES FROM CUSTOMER C JOIN ORDERS O ON C.C_CUSTKEY = O.O_CUSTKEY JOIN LINEITEM L ON O.O_ORDERKEY = L.L_ORDERKEY GROUP BY C.C_NAME ORDER BY TOTAL_PURCHASES DESC LIMIT 5
result_format: pandas
Continue to run the tool with the following code:
from ryoma_ai.agent.workflow import ToolMode
sql_agent.stream(tool_mode=ToolMode.ONCE)Output will look like after running the tool:
================================== Ai Message ==================================
The top 5 customers who have made the most purchases are as follows:
1. Customer#000143500 - Total Purchases: $7,154,828.98
2. Customer#000095257 - Total Purchases: $6,645,071.02
3. Customer#000087115 - Total Purchases: $6,528,332.52
4. Customer#000134380 - Total Purchases: $6,405,556.97
5. Customer#000103834 - Total Purchases: $6,397,480.12
Ryoma lab is an application that allows you to interact with your data and AI models in UI. The ryoma lab is built with Reflex.
- Create Ryoma lab configuration file
rxconfig.pyin your project:
import logging
import reflex as rx
from reflex.constants import LogLevel
config = rx.Config(
app_name="ryoma_lab",
loglevel=LogLevel.INFO,
)
# Setup basic configuration for logging
logging.basicConfig(level=logging.INFO, format="%(asctime)s - %(levelname)s - %(message)s")- You can start the ryoma lab by running the following command:
ryoma_lab runthe ryoma lab will be available at http://localhost:3000.

Model provider are supported by jupyter ai magics. Ensure the corresponding environment variables are set before using the Ryoma agent.
| Provider | Provider ID | Environment variable(s) | Python package(s) |
|---|---|---|---|
| AI21 | ai21 |
AI21_API_KEY |
ai21 |
| Anthropic | anthropic |
ANTHROPIC_API_KEY |
langchain-anthropic |
| Anthropic (playground) | anthropic-playground |
ANTHROPIC_API_KEY |
langchain-anthropic |
| Bedrock | bedrock |
N/A | boto3 |
| Bedrock (playground) | bedrock-playground |
N/A | boto3 |
| Cohere | cohere |
COHERE_API_KEY |
cohere |
| ERNIE-Bot | qianfan |
QIANFAN_AK, QIANFAN_SK |
qianfan |
| Gemini | gemini |
GOOGLE_API_KEY |
langchain-google-genai |
| GPT4All | gpt4all |
N/A | gpt4all |
| Hugging Face Hub | huggingface_hub |
HUGGINGFACEHUB_API_TOKEN |
huggingface_hub, ipywidgets, pillow |
| NVIDIA | nvidia-playground |
NVIDIA_API_KEY |
langchain_nvidia_ai_endpoints |
| OpenAI | openai |
OPENAI_API_KEY |
langchain-openai |
| OpenAI (playground) | openai-playground |
OPENAI_API_KEY |
langchain-openai |
| SageMaker | sagemaker-endpoint |
N/A | boto3 |
- Snowflake
- Sqlite
- BigQuery
- Postgres
- MySQL
- File (CSV, Excel, Parquet, etc.)
- Redshift
- DynamoDB
- Apache Spark
- Apache Flink
- Presto
For comprehensive documentation including architecture, API reference, and guides:
- Documentation Index - Start here for all documentation
- Getting Started - Detailed setup and configuration guides
- Architecture - Understanding Ryoma AI's internals
- Changelog - Release notes and version history
We welcome contributions! To get started:
- Read the Contributing Guide - Guidelines and best practices
- Check the Documentation Index - Understand the codebase structure
- Submit a Pull Request - We review PRs regularly
For major changes or architectural discussions, please open an issue first to discuss your proposed changes.
This project is licensed under the terms of the Apache Software License 2.0 license. See LICENSE for more details.