Eliza, the chatbot from the 1960s, running on OpenAI's Chat Completions API
Project description
Eliza-GPT
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 roleuser
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
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 eliza_gpt-0.1.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 3ebe0a3b54b52bbe6835382be073531356e979bbcf3c7b5d07970ba78d312ea8 |
|
MD5 | 4e1ef644648b690ba0a53ecaa11e6b0e |
|
BLAKE2b-256 | 485a695cefc6e148cf0f83412b67c4d1f04faa498eaee590092de457b28cef4e |