https://github.com/jybaek/llm-with-slack
Connect ChatGPT to Slackbot. Works via FastAPI
https://github.com/jybaek/llm-with-slack
chatgpt fastapi python slack
Last synced: 5 months ago
JSON representation
Connect ChatGPT to Slackbot. Works via FastAPI
- Host: GitHub
- URL: https://github.com/jybaek/llm-with-slack
- Owner: jybaek
- License: apache-2.0
- Created: 2023-03-13T15:57:46.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-04-14T13:18:28.000Z (about 2 years ago)
- Last Synced: 2024-04-14T13:18:44.915Z (about 2 years ago)
- Topics: chatgpt, fastapi, python, slack
- Language: Python
- Homepage:
- Size: 72.3 KB
- Stars: 11
- Watchers: 2
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: license
Awesome Lists containing this project
README
[](https://www.python.org/downloads/release/python-360/)

> This is an image created with DALL-E 2. Use it for your Slatbot profile image.
# LLM API with FastAPI
This repository connects the LLM API to Slack.
It currently supports implementations using OpenAI's ChatGPT and Google's Gemini model.
The basic structure is straightforward.
When a message arrives through Slack, we generate a response using the LLM's API.
It has multimodal capabilities, enabling us to process and analyze images.
All settings are set via environment variables.
See [here](./app/config/constants.py).
| envrionment | description | default |
|----------------------------|---------------------------------------------|----------------------------|
| slack_token | A Slack token that begins with `XOXB` | required |
| openai_token | An OpenAI token that begins with `sk` | required |
| number_of_messages_to_keep | Set how many conversation histories to keep | 5 |
| max_token | The maximum number of tokens | 2048 |
| system_content | Enter the system content for ChatGPT | N/A |
| gpt_model | GPT Model | gpt-3.5-turbo |
| gemini_model | Gemini Model | gemini-1.5-pro-001 |
| claude_model | Claude Model | claude-3-5-sonnet@20240620 |
## Supported LLMs
- OpenAI GPT
- Google Gemini
- Anthropic Claude
## Prerequisite
- Docker
Before running the application, make sure that Docker is installed and running on your system.
important: Set and use all the environment variables in [app/config/constants.py](app/config/constants.py).
## Local Execution Guide
1. First, to run this application in your local environment, please execute the following command to install the required libraries.
```bash
pip install -r requirements.txt
```
2. Once the necessary libraries have been installed, execute the following command to run the application.
```bash
uvicorn app.main:app --reload
```
This command will run the application based on the app object in the main module of the app package.
You can use the `--reload` option to automatically reload the application when file changes are detected.

## Installation
1. Clone the repository:
```bash
https://github.com/jybaek/llm-with-slack.git
cd llm-with-slack
```
2. Build the Docker image:
```bash
docker build -t llm-api .
```
3. Run the Docker container:
```bash
docker run --rm -it -p8000:8000 llm-api
```
4. Open your web browser and go to `http://localhost:8000/docs` to access the Swagger UI and test the API.
## Sample
|Gemini|GPT|
|------|---|
|||
## API Documentation
The API documentation can be found at `http://localhost:8000/docs` once the Docker container is running.
## License
This project is licensed under the terms of the Apache license. See [LICENSE](license) for more information.