https://github.com/aiplanethub/openagi

Paving the way for open agents and AGI for all.

https://github.com/aiplanethub/openagi

Science Score: 13.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
  • DOI references
  • Academic publication links
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (14.5%) to scientific vocabulary

Keywords

agents agi generative-ai hacktoberfest hacktoberfest-accepted hacktoberfest2023 hacktoberfest2024 large-language-models llm openagi openai
Last synced: 6 months ago · JSON representation

Repository

Paving the way for open agents and AGI for all.

Basic Info
  • Host: GitHub
  • Owner: aiplanethub
  • License: apache-2.0
  • Language: Jupyter Notebook
  • Default Branch: main
  • Homepage: https://openagi.aiplanet.com/
  • Size: 5.46 MB
Statistics
  • Stars: 333
  • Watchers: 11
  • Forks: 75
  • Open Issues: 9
  • Releases: 18
Topics
agents agi generative-ai hacktoberfest hacktoberfest-accepted hacktoberfest2023 hacktoberfest2024 large-language-models llm openagi openai
Created almost 2 years ago · Last pushed 12 months ago
Metadata Files
Readme Contributing Code of conduct

README.md

OpenAGI

Making the development of autonomous human-like agents accessible to all

Python Versions PyPI version Discord Twitter Medium Blog

OpenAGI aims to make human-like agents accessible to everyone, thereby paving the way towards open agents and, eventually, AGI for everyone. We strongly believe in the transformative power of AI and are confident that this initiative will significantly contribute to solving many real-life problems. Currently, OpenAGI is designed to offer developers a framework for creating autonomous human-like agents.

👉 Join our Discord community!

Installation

  1. Setup a virtual environment.

```bash

For Mac and Linux users

python3 -m venv venv source venv/bin/activate

For Windows users

python -m venv venv venv/scripts/activate ```

  1. Install the openagi

bash pip install openagi

or git clone https://github.com/aiplanethub/openagi.git pip install -e .

Example (Manual Agent Execution)

Workers are used to create a Multi-Agent architecture.

Follow this example to create a Trip Planner Agent that helps you plan the itinerary to SF.

```py from openagi.agent import Admin from openagi.planner.taskdecomposer import TaskPlanner from openagi.actions.tools.ddgsearch import DuckDuckGoSearch from openagi.llms.openai import OpenAIModel from openagi.worker import Worker

plan = TaskPlanner(human_intervene=False) action = DuckDuckGoSearch

import os os.environ['OPENAIAPIKEY'] = "sk-xxxx" config = OpenAIModel.loadfromenv_config() llm = OpenAIModel(config=config)

tripplan = Worker( role="Trip Planner", instructions=""" User loves calm places, suggest the best itinerary accordingly. """, actions=[action], maxiterations=10)

admin = Admin( llm=llm, actions=[action], planner=plan, ) admin.assignworkers([tripplan])

res = admin.run( query="Give me total 3 Days Trip to San francisco Bay area", description="You are a knowledgeable local guide with extensive information about the city, it's attractions and customs", ) print(res) ```

Example (Autonomous Multi-Agent Execution)

Lets build a Sports Agent now that can run autonomously without any Workers.

```py from openagi.planner.task_decomposer import TaskPlanner from openagi.actions.tools.tavilyqasearch import TavilyWebSearchQA from openagi.agent import Admin from openagi.llms.gemini import GeminiModel

import os os.environ['TAVILYAPIKEY'] = "" os.environ['GOOGLEAPIKEY'] = "" os.environ['GeminiMODEL'] = "gemini-1.5-flash" os.environ['GeminiTEMP'] = "0.1"

geminiconfig = GeminiModel.loadfromenvconfig() llm = GeminiModel(config=gemini_config)

define the planner

plan = TaskPlanner(autonomous=True,human_intervene=True)

admin = Admin( actions = [TavilyWebSearchQA], planner = plan, llm = llm, ) res = admin.run( query="I need cricket updates from India vs Sri lanka 2024 ODI match in Sri Lanka", description=f"give me the results of India vs Sri Lanka ODI and respective Man of the Match", ) print(res) ```

Long Term Memory like never before

With LTM, OpenAGI agents can now:

  • Recall past interactions to provide continuity in conversations.
  • Learn and adapt based on user inputs over time.
  • Deliver contextually relevant responses by referencing previous conversations.
  • Improve their accuracy and efficiency with each successive interaction.

```py import os from openagi.agent import Admin from openagi.llms.openai import OpenAIModel from openagi.memory import Memory from openagi.planner.taskdecomposer import TaskPlanner from openagi.worker import Worker from openagi.actions.tools.ddgsearch import DuckDuckGoSearch

memory = Memory(long_term=True)

os.environ['OPENAIAPIKEY'] = "-" config = OpenAIModel.loadfromenv_config() llm = OpenAIModel(config=config)

web_searcher = Worker( role="Web Researcher", instructions=""" You are tasked with conducting web searches using DuckDuckGo. Find the most relevant and accurate information based on the user's query. """, actions=[DuckDuckGoSearch], )

admin = Admin( actions=[DuckDuckGoSearch], planner=TaskPlanner(humanintervene=False), memory=memory, llm=llm, ) admin.assignworkers([web_searcher])

query = input("Enter your search query: ") description = f"Find accurate and relevant information for the query: {query}"

res = admin.run(query=query,description=description) print(res) ```

Documentation

For more queries find documentation for OpenAGI at openagi.aiplanet.com

Use Cases:

  • Education: In education, agents can provide personalized learning experiences. They adapt and tailor learning content based on student's progress, performance and interests. It can extend to automating various other administrative tasks and assist teachers in improving their productivity.
  • Finance and Banking: Financial services can use agents for fraud detection, risk assessment, personalized banking advice, automating trading, and customer service. They help in analyzing large volumes of transactions to identify suspicious activities and offer tailored investment advice.
  • Healthcare: Agents can be deployed to monitor patients, provide personalized health recommendations, manage patient data, and automate administrative tasks. They can also assist in diagnosing diseases based on symptoms and medical history.

Get in Touch

For any queries/suggestions/support connect us at openagi@aiplanet.com

Contribution guidelines

OpenAGI thrives in the rapidly evolving landscape of open-source projects. We wholeheartedly welcome contributions in various capacities, be it through innovative features, enhanced infrastructure, or refined documentation.

For a comprehensive guide on the contribution process, please click here.

Support

📚 Documentation 💬 Discord Community 📝 Issue Tracker

Owner

  • Name: AI Planet
  • Login: aiplanethub
  • Kind: organization

Ecosystem educating and building AI for everyone!

GitHub Events

Total
  • Create event: 13
  • Commit comment event: 3
  • Release event: 5
  • Issues event: 12
  • Watch event: 105
  • Issue comment event: 44
  • Push event: 49
  • Pull request review event: 20
  • Pull request review comment event: 17
  • Pull request event: 48
  • Fork event: 31
Last Year
  • Create event: 13
  • Commit comment event: 3
  • Release event: 5
  • Issues event: 12
  • Watch event: 105
  • Issue comment event: 44
  • Push event: 49
  • Pull request review event: 20
  • Pull request review comment event: 17
  • Pull request event: 48
  • Fork event: 31

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 2
  • Total pull requests: 12
  • Average time to close issues: 4 months
  • Average time to close pull requests: 17 days
  • Total issue authors: 2
  • Total pull request authors: 6
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Past Year
  • Issues: 2
  • Pull requests: 12
  • Average time to close issues: 4 months
  • Average time to close pull requests: 17 days
  • Issue authors: 2
  • Pull request authors: 6
  • Average comments per issue: 1.5
  • Average comments per pull request: 0.0
  • Merged pull requests: 8
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • deepakachu-aiplanet (3)
  • gourab-aiplanet (1)
  • tarun-aiplanet (1)
  • jcubic (1)
  • Ankitmohanty2 (1)
  • sk5268 (1)
  • Bhabuk10 (1)
  • shivaya-aiplanet (1)
  • MissGorgeousTech (1)
  • adityasingh-0803 (1)
  • PixelAIWizard22 (1)
Pull Request Authors
  • tarun-aiplanet (20)
  • ShreehariVaasishta (10)
  • deepakachu-aiplanet (7)
  • shivaya-aiplanet (6)
  • shivayapandey (6)
  • gourab-aiplanet (5)
  • shreehari-aiplanet (4)
  • taha-aiplanet (4)
  • Bhavyaaiplanet (4)
  • tknishh (3)
  • lucifertrj (3)
  • tanish-aiplanet (3)
  • sk5268 (3)
  • jaintarunAI (1)
  • raju249 (1)
Top Labels
Issue Labels
enhancement (3) good first issue (2) hacktoberfest-accepted (2) bug (1) help wanted (1)
Pull Request Labels
enhancement (3) help wanted (2) hacktoberfest-accepted (2) good first issue (1) question (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 184 last-month
  • Total dependent packages: 0
  • Total dependent repositories: 0
  • Total versions: 29
  • Total maintainers: 1
pypi.org: openagi

Making the development of autonomous human-like agents accessible to all

  • Versions: 29
  • Dependent Packages: 0
  • Dependent Repositories: 0
  • Downloads: 184 Last month
Rankings
Dependent packages count: 9.7%
Average: 36.8%
Dependent repos count: 63.9%
Maintainers (1)
Last synced: 7 months ago

Dependencies

poetry.lock pypi
  • 145 dependencies
pyproject.toml pypi
  • ruff ^0.1.11 develop
  • azure-identity ^1.15.0
  • duckduckgo-search 5.2.1
  • fastapi ^0.110.0
  • google-api-python-client ^2.121.0
  • google-auth-httplib2 ^0.2.0
  • google-auth-oauthlib ^1.2.0
  • google-search-results ^2.4.2
  • langchain 0.1.8
  • langchain-community 0.0.21
  • langchain-exa ^0.0.1
  • langchain-experimental ^0.0.53
  • langchain-openai 0.0.6
  • langchain-text-splitters ^0.0.1
  • langchainhub ^0.1.15
  • ollama ^0.1.7
  • pygithub ^2.3.0
  • python ~3.11
  • python-dotenv ^1.0.1
  • python-multipart ^0.0.9
  • spacy 3.7.4
  • spacytextblob ^4.0.0
  • uvicorn ^0.29.0
  • wikipedia ^1.4.0
  • xorbits ^0.7.2
  • yfinance ^0.2.37
requirements.txt pypi
  • aiohttp ==3.9.3
  • aiosignal ==1.3.1
  • annotated-types ==0.6.0
  • anyio ==4.3.0
  • appdirs ==1.4.4
  • attrs ==23.2.0
  • azure-core ==1.30.1
  • azure-identity ==1.15.0
  • beautifulsoup4 ==4.12.3
  • blis ==0.7.11
  • cachetools ==5.3.3
  • catalogue ==2.0.10
  • certifi ==2024.2.2
  • cffi ==1.16.0
  • charset-normalizer ==3.3.2
  • click ==8.1.7
  • cloudpathlib ==0.16.0
  • cloudpickle ==3.0.0
  • colorama ==0.4.6
  • confection ==0.1.4
  • cryptography ==42.0.5
  • curl-cffi ==0.6.2
  • cymem ==2.0.8
  • dataclasses-json ==0.6.4
  • defusedxml ==0.7.1
  • deprecated ==1.2.14
  • distro ==1.9.0
  • duckduckgo-search ==5.2.1
  • exa-py ==1.0.9
  • fastapi ==0.110.0
  • frozendict ==2.4.1
  • frozenlist ==1.4.1
  • fsspec ==2024.3.1
  • google-api-core ==2.18.0
  • google-api-python-client ==2.124.0
  • google-auth ==2.29.0
  • google-auth-httplib2 ==0.2.0
  • google-auth-oauthlib ==1.2.0
  • google-search-results ==2.4.2
  • googleapis-common-protos ==1.63.0
  • greenlet ==3.0.3
  • h11 ==0.14.0
  • html5lib ==1.1
  • httpcore ==1.0.5
  • httplib2 ==0.22.0
  • httpx ==0.27.0
  • idna ==3.6
  • jinja2 ==3.1.3
  • joblib ==1.3.2
  • jsonpatch ==1.33
  • jsonpointer ==2.4
  • langchain ==0.1.8
  • langchain-community ==0.0.21
  • langchain-core ==0.1.37
  • langchain-exa ==0.0.1
  • langchain-experimental ==0.0.53
  • langchain-openai ==0.0.6
  • langchain-text-splitters ==0.0.1
  • langchainhub ==0.1.15
  • langcodes ==3.3.0
  • langsmith ==0.1.38
  • lxml ==5.2.0
  • markupsafe ==2.1.5
  • marshmallow ==3.21.1
  • msal ==1.28.0
  • msal-extensions ==1.1.0
  • multidict ==6.0.5
  • multitasking ==0.0.11
  • murmurhash ==1.0.10
  • mypy-extensions ==1.0.0
  • nltk ==3.8.1
  • numpy ==1.26.4
  • oauthlib ==3.2.2
  • ollama ==0.1.8
  • openai ==1.14.3
  • orjson ==3.10.0
  • packaging ==23.2
  • pandas ==2.2.1
  • peewee ==3.17.1
  • portalocker ==2.8.2
  • preshed ==3.0.9
  • proto-plus ==1.23.0
  • protobuf ==4.25.3
  • psutil ==5.9.8
  • pyarrow ==15.0.2
  • pyasn1 ==0.6.0
  • pyasn1-modules ==0.4.0
  • pycparser ==2.22
  • pydantic ==2.6.4
  • pydantic-core ==2.16.3
  • pygithub ==2.3.0
  • pyjwt ==2.8.0
  • pynacl ==1.5.0
  • pyparsing ==3.1.2
  • python-dateutil ==2.9.0.post0
  • python-dotenv ==1.0.1
  • python-multipart ==0.0.9
  • pytz ==2024.1
  • pywin32 ==306
  • pyyaml ==6.0.1
  • regex ==2023.12.25
  • requests ==2.31.0
  • requests-oauthlib ==2.0.0
  • rsa ==4.9
  • scikit-learn ==1.4.1.post1
  • scipy ==1.12.0
  • setuptools ==69.2.0
  • six ==1.16.0
  • smart-open ==6.4.0
  • sniffio ==1.3.1
  • soupsieve ==2.5
  • spacy ==3.7.4
  • spacy-legacy ==3.0.12
  • spacy-loggers ==1.0.5
  • spacytextblob ==4.0.0
  • sqlalchemy ==2.0.29
  • srsly ==2.4.8
  • starlette ==0.36.3
  • tblib ==3.0.0
  • tenacity ==8.2.3
  • textblob ==0.15.3
  • thinc ==8.2.3
  • threadpoolctl ==3.4.0
  • tiktoken ==0.6.0
  • tornado ==6.4
  • tqdm ==4.66.2
  • typer ==0.9.4
  • types-requests ==2.31.0.20240311
  • typing-extensions ==4.10.0
  • typing-inspect ==0.9.0
  • tzdata ==2024.1
  • uritemplate ==4.1.1
  • urllib3 ==2.2.1
  • uvicorn ==0.29.0
  • uvloop ==0.19.0
  • wasabi ==1.1.2
  • weasel ==0.3.4
  • webencodings ==0.5.1
  • wikipedia ==1.4.0
  • wrapt ==1.16.0
  • xorbits ==0.7.2
  • xoscar ==0.3.0
  • yarl ==1.9.4
  • yfinance ==0.2.37