Skip to main content

An open-source project aimed at building an open and diversified ecosystem for chatbot plugins.

Project description

Open-ChatGPT-Plugins 😎

Read this in other languages: English, 中文.

Open-ChatGPT-Plugins is an open-source project🌟 aimed at building an open and diverse ecosystem of chatbot plugins. This project enables developers to easily add new functionalities and interactive experiences to the ChatGPT model✨.

Background 📚

At the Developer Conference, OpenAI introduced GPT-4 Turbo, proposing the concept of "Assistants". This was seen by developers as a plugin marketplace for the general public version (non-plugin developers). With the increased context length of GPT-4 Turbo and its high comprehension ability, we can replicate the capabilities of ChatGPT-Plugins, thus building an open-source local version of ChatGPT-Plugins.

Features 💡

  1. Unlike other tool projects, this project is fully compatible with the ChatGPT-Plugins API service. This means that if you have previously written an API for ChatGPT-Plugins, you can directly interface with the previous API service using this project, without the need for redevelopment🚀.
  2. Experience Plugins services without purchasing ChatGPT Plus🎉.

Installation 🔧

To install the necessary packages for this plugin, run the following command:

pip install openplugins

Usage 🖥️

  • First method: Upload the API's YAML file
import openplugins
assistant = openplugins.Assistants(yaml_file_path='../openai.yaml', tools_model='gpt-4-1106-preview', openai_api_key='sk-xxxx')
print(assistant.run('Please check the historical stock data of Guizhou Maotai for yesterday'))
print(assistant.id)
  • Second method: Use via Assistant ID
import openplugins
assistant = openplugins.Assistants(assistant_id='eafa9807-7cff-4afb-b069-ce3437c076fb', tools_model='gpt-4-1106-preview', openai_api_key='sk-xxxx')
print(assistant.run('Please check the historical stock data of Guizhou Maotai for yesterday'))
  • Third method: Update the YAML file
import openplugins
assistant = openplugins.Assistants(yaml_file_path='openai.yaml', assistant_id='eafa9807-7cff-4afb-b069-ce3437c076fb', tools_model='gpt-4-1106-preview', openai_api_key='sk-xxxx')
print(assistant.run('Please check the historical stock data of Guizhou Maotai for yesterday'))

Note: The API service must be run first. For the API service, refer to the StockMarketAssistant project🔗.

View currently available assistants

import openplugins
data = openplugins.DataInfo()
print(data.get_all_assistants_info())

Delete currently available assistants

import openplugins
data = openplugins.DataInfo()
data.delete_assistant(assistant_id = 'cf1f114a-019c-4e36-a8d4-681f5027ef8c')

Principle 🤖

This project replicates ChatGPT-Plugins and requires a YAML file to describe the interface, with one YAML corresponding to the initialization of an Assistant. The main process includes:

  • Reading the YAML file and creating an Assistant based on the file description.
  • Starting a thread.
  • First, recommend tools.
  • Formulate a plan based on the recommendation list.
  • Call the services step by step according to the plan.
  • Generate the final result by combining the results of each step.

TODO List:

  • Check if the YAML file meets requirements (To be completed)📝.
  • Integrate Streamlit UI (To be completed)🖌️.

📝 License

MIT License Disclaimer: We share this code for academic purposes under the MIT educational license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openplugins-0.1.8.tar.gz (17.6 kB view details)

Uploaded Source

Built Distribution

openplugins-0.1.8-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file openplugins-0.1.8.tar.gz.

File metadata

  • Download URL: openplugins-0.1.8.tar.gz
  • Upload date:
  • Size: 17.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for openplugins-0.1.8.tar.gz
Algorithm Hash digest
SHA256 50c5f7dfcff55f58f383574d9b211a712d761ce18b0aff95474dceb8ca65dd39
MD5 b7349e991d50b67b6eb479de5682ab69
BLAKE2b-256 373463d381afde39640eaae6b171638382f69804516eb2833200f3147572a3e9

See more details on using hashes here.

File details

Details for the file openplugins-0.1.8-py3-none-any.whl.

File metadata

  • Download URL: openplugins-0.1.8-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.10.12

File hashes

Hashes for openplugins-0.1.8-py3-none-any.whl
Algorithm Hash digest
SHA256 966f06ec90dc8532f0f1f762a3cde3d6492c524fdc92549cce3c1bdb602bdc1b
MD5 ec52b8a170cfd03e54112cf257260893
BLAKE2b-256 0759e29f3fbbd06c7a968a9b39632ad9f6e7587174738da86e5be41afb20431f

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page