Research, Coding and Planning agents used by Sirji.
Project description
Sirji is an Open Source AI Software Development Agent.
Built with ❤️ by True Sparrow
Sirji Agents
sirji-agents
is a PyPI package that implements three key agents for Sirji:
- Coding Agent
- Planning Agent
- Research Agent
It Utilizes:
- OpenAI Chat Completions API
- OpenAI Assistants API
This package communicates with models and RAG assistants.
Installation
Setup Virtual Environment
We recommend setting up a virtual environment to isolate Python dependencies, ensuring project-specific packages without conflicting with system-wide installations.
python3 -m venv venv
source venv/bin/activate
Install Package
Install the package from PyPi:
pip install sirji-agents
Run the following command to install playwright:
playwright install
Usage
Environment Variables
Ensure that following environment variables are set:
export SIRJI_WORKSPACE="Absolute folder path for Sirji to use as it's workspace. Note that a .sirji folder will be created inside it."
export SIRJI_RUN_ID='Unique alphanumeric ID for each run. Note that a sub folder named by this ID will be created inside of .sirji folder to store logs, etc.'
export SIRJI_OPENAI_API_KEY='OpenAI API key for Chat Completions API and Assistants API'
Research Agent
Initialization
from sirji_agents import ResearchAgent
# Initialize Researcher without assistant ID
researcher = ResearchAgent('openai_assistant', 'openai_assistant')
# init_payload fetched from researcher object should be persisted
init_payload = researcher.init_payload
# Initialize Researcher with assistant ID
researcher = ResearchAgent('openai_assistant', 'openai_assistant', init_payload)
Some example message handling usages are given below.
Train using URL
from sirji_messages import MessageFactory, ActionEnum
message_class = MessageFactory[ActionEnum.TRAIN_USING_URL.name]
message_str = message_class().generate({"url": "https://finance.yahoo.com/quote/API/"})
researcher.message(message_str)
Infer
from sirji_messages import MessageFactory, ActionEnum
message_class = MessageFactory[ActionEnum.INFER.name]
message_str = message_class().generate({"details": "How to use yahoo finance api?"})
researcher.message(message_str)
Coding Agent
from sirji_agents import CodingAgent
# Initialize Coding Agent
coder = CodingAgent()
# Construct a message for problem statement
from sirji_messages import MessageFactory, ActionEnum
message_class = MessageFactory[ActionEnum.PROBLEM_STATEMENT.name]
message_str = message_class().generate({"details": "Create a python executable file to find out the factorial of a number"})
# At the beginning, history is empty
coder_history = []
# call the Coder and update the history variable
response_message, coder_history = coder.message(message_str, coder_history)
# Now in the new history:
# coder_history[0] is the system prompt
# coder_history[1] is the message from User to Coder passing the problem statement
# coder_history[2] is the response from the LLM inference
# Persist the history variable for future use.
Planning Agent
from sirji_agents import PlanningAgent
# Initialize Planning Agent
planner = PlanningAgent()
# Construct a message for generate steps message
from sirji_messages import MessageFactory, ActionEnum
message_class = MessageFactory[ActionEnum.GENERATE_STEPS.name]
message_str = message_class().generate({"details": "Create a python executable file to find out the factorial of a number"})
# In the actual flow, this message_str will be obtained as a response from Coder.
# At the beginning, history is empty
planner_history = []
# call the Planner and update the history variable
response_message, planner_history = planner.message(message_str, planner_history)
For Contributors
- Fork and clone the repository.
- Create and activate the virtual environment as described above.
- Set the environment variables as described above.
- Install the package in editable mode by running the following command from repository root:
pip install -e .
- Run the following command to install playwright:
playwright install
Running Tests and Coverage Analysis
TODO
License
Distributed under the MIT License. See LICENSE
for more information.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for sirji_agents-0.0.11-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 804aebf5fc0679e990f9971132e2020b771c5a9dd24461c5fe7c36661110c868 |
|
MD5 | 308d1c854c647c431282c498c2009091 |
|
BLAKE2b-256 | db865a63eab1b00f19cac6cd5fbeabb6e474d44d98c23a388b378599a3667566 |