Skip to content

Latest commit

 

History

History
63 lines (45 loc) · 1.99 KB

File metadata and controls

63 lines (45 loc) · 1.99 KB

StreamBotAPI

StreamBotAPI is a Python package that provides a simple Flask-based API for interacting with the StreamBot which is a wrapper of OpenAI's ChatGPT.

Installation

StreamBotAPI can be installed using pip:

pip install streambot-api

Usage

To use StreamBotAPI, first initialize an instance of the StreamBot class from the streambot package:

from streambot import StreamBot

streambot = StreamBot(
    openai_key='your_openai_key',
    bot_name='your_bot_name',
    genesis_prompt='You are a helpful translator.'
)

You can then create an instance of the StreamBotAPI class by passing in the initialized StreamBot object:

from streambot_api import StreamBotAPI

server = StreamBotAPI(streambot, host='127.0.0.1', port=8080, origins=['http://localhost:3000', 'https://myapp.com'])
server.start()

This will start the Flask app with the specified configuration options and routes.

Configuration Options

The StreamBotAPI class takes the following configuration options:

  • streambot: An instance of the StreamBot class from the streambot package.
  • host: The hostname to listen on. Defaults to 0.0.0.0.
  • port: The port of the web server. Defaults to 80.
  • origins: A list of allowed origins for CORS. Defaults to ['*'].

Routes

The following routes are available:

GET /api/getmessages/<user_id>

Returns a JSON object containing all messages for the specified user.

POST /api/messages

Handles incoming chat messages from the user. Expects a JSON payload with the following fields:

connection_id: A unique ID for the user. message: The message from the user. Returns a JSON object containing all messages for the user.

POST /api/newchat

Resets the chat history for the specified user. Expects a JSON payload with the following field:

connection_id: A unique ID for the user. Returns a JSON object with a value of true.

License

This package is licensed under the MIT license. See the LICENSE file for more details.