Skip to main content

Eliza, the chatbot from the 1960s, running on OpenAI's Chat Completions API

Project description

Eliza-GPT

Build status codecov

Eliza, the classic chatbot from the 1960s, running on OpenAI's Chat Completions API.

Why?

The main reason is that this seemed like a fun project to help me acquire a greater understanding of the Chat Completions API from OpenAI, which has become a sort of standard for turn-based conversation between a human and a machine.

But also, it is great to have a fast and free service with negligible resource consumption that can be used as a stand-in for a real LLM when the quality of the responses do not matter, such as while doing development or testing.

How To Use

Eliza-GPT is written in Python and can be installed with pip:

$ pip install eliza-gpt

Once installed, run it to start it as a local service on your computer:

$ eliza-gpt
Eliza-GPT is running!
Set base_url="http://127.0.0.1:5005/v1" in your OpenAI client to connect.

Finally, if you have a custom client that talks directly to the chat completions endpoint, configure http://127.0.0.1:5005/v1 as your endpoint.

Configuration

Run with --help to learn about configuration options, which include:

  • Setting the listening IP address and port
  • Adding an API key for authentication
  • Changing the (simulated) response times, or removing all artificial delays.

Connecting With a Chat Client

If you are using the official Python client from OpenAI, add the base_url option to it as follows:

openai_client = OpenAI(base_url='http://127.0.0.1:5005/v1')

If you use Langchain, then use the following to connect to Eliza-GPT:

chat = ChatOpenAI(base_url='http://127.0.0.1:5005/v1')

Eliza-GPT supports both the direct and streaming interfaces offered by these clients.

Examples

The examples directory includes demonstration applications implemented with the OpenAI client and Langchain.

Implementation Details

Eliza-GPT implements a portion of the OpenAI Chat Completions API, ignoring anything that isn't useful.

The following aspects of the API are currently supported:

  • The chat history given in the messages argument. Only messages with role user are used to "prime" Eliza so that it provides a reasonable response.
  • The stream argument, which determines if the response should be given in a single JSON object or as a stream of Server-Sent Events.
  • The seed option, which makes it possible to have deterministic responses.

These are not used or implemented:

  • Any messages in the chat history that have a role different than user.
  • Model names. Eliza-GPT returns the requested model name in the response.
  • The n argument, which controls how many responses are returned. Eliza-GPT always returns a single response.
  • The max_tokens argument.
  • Temperature and other LLM-specific tuning parameters.
  • The stop argument.
  • Anything related to tools or functions that the model may call.
  • Anything related to log probabilities.

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

eliza-gpt-0.1.1.tar.gz (45.9 kB view details)

Uploaded Source

Built Distribution

eliza_gpt-0.1.1-py3-none-any.whl (46.6 kB view details)

Uploaded Python 3

File details

Details for the file eliza-gpt-0.1.1.tar.gz.

File metadata

  • Download URL: eliza-gpt-0.1.1.tar.gz
  • Upload date:
  • Size: 45.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for eliza-gpt-0.1.1.tar.gz
Algorithm Hash digest
SHA256 c7030efeecbd03bab28ba93ff105de1d4d0e6bddd94b65aff40f19917aadff4c
MD5 88ece43520ecc4b22ddf9f7e2c291ac1
BLAKE2b-256 0af67ec5a640fdf727edcb200b95dca80a1fd092b0fc258b6bd460ad6e6ede5d

See more details on using hashes here.

File details

Details for the file eliza_gpt-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: eliza_gpt-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 46.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.12.0

File hashes

Hashes for eliza_gpt-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3ebe0a3b54b52bbe6835382be073531356e979bbcf3c7b5d07970ba78d312ea8
MD5 4e1ef644648b690ba0a53ecaa11e6b0e
BLAKE2b-256 485a695cefc6e148cf0f83412b67c4d1f04faa498eaee590092de457b28cef4e

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