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_ai
Or with extra dependencies:
pip install ryoma_ai[snowflake]
Below is an example of using SqlAgent to connect to a postgres database and ask a question. You can read more details in the documentation.
from ryoma_ai.agent.sql import SqlAgent
from ryoma_ai.datasource.postgres import PostgresDataSource
# Connect to a postgres catalog
datasource = PostgresDataSource("postgresql://user:password@localhost:5432/dbname")
# Create a SQL agent
sql_agent = SqlAgent("gpt-3.5-turbo").add_datasource(datasource)
# ask question to the agent
sql_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:
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.py
in 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 run
the 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
This project is licensed under the terms of the Apache Software License 2.0
license. See LICENSE for more details.