AI prompts
base on WhatsApp client with LLM integration. It support OpenAI API and also local LLMs # LLM for WhatsApp
## Description
**LLM for WhatsApp** is an application designed to automate responses to WhatsApp messages using an LLM.
I created this for fun and to engage with and potentially wasting the time of scammers. I have used it several times when I was approach by scammers and was a blast.
In the end, my goal is to have my phone number banned on all scamming lists, marked as "useless".
Of course can be used for any kind of autoresponding needs, it has fully customizable system prompt and list of contacts to interacat with.
Please note that **LLM for WhatsApp** is using [whatsapp.js](https://github.com/pedroslopez/whatsapp-web.js) that is using automation on the Whatsapp web client, a method that is not officially supported by Meta.
For any business purposes, it is recommeded to apply for business API access and use the Whatsapp business API instead of this.
The application integrates with OpenAI's models via API or any custom LLM that's compatible with OpenAI's API interface. For a very quick setup, I recommend [Oobabooga with OpenAI extension](https://github.com/oobabooga/text-generation-webui/wiki/12-%E2%80%90-OpenAI-API)
and as a model, for English, I recommend [Mistral 7B](https://huggingface.co/mistralai/Mistral-7B-v0.1).
## Features
- Automated responses to WhatsApp messages.
- Support for OpenAI API via API key.
- Support for custom LLMs for complete privacy.
- Customizable for various scenarios where automated messaging via Whatsapp are required.
- Start it for any contact or group and let LLM to continue conversation.
- Give directions to the LLM via the customizable system prompt
- Custom message to start conversation.
- Stop the conversation and resume with custom message
## Getting Started
### Use released binaries
Easiest way to start is to [download binaries](https://github.com/iongpt/LLM-for-Whatsapp/releases/latest) for your OS
### Build from sources
Or you can build from sources followint those steps
### Prerequisites
Before you can run or build LLM for WhatsApp, ensure you have the following installed:
- Node.js
- Yarn package manager
### Installation
1. Clone the repository:
```bash
git clone https://github.com/iongpt/LLM-for-Whatsapp.git
```
2. Navigate to the application directory:
```bash
cd LLM-for-Whatsapp
```
3. Install the necessary packages:
```bash
yarn install
```
4. Run the preinstall script for extra libraries defined in the app folder:
```bash
yarn run preinstall
```
5. Rename app/settings.json.example to app/settings.json
## Usage
### Running in Development Mode
To run the application in development mode:
```bash
yarn run dev
```
### Building the Application
You can build the application for various operating systems using the following commands:
- For Windows:
```bash
yarn run build:win
```
- For macOS (Intel):
```bash
yarn run build:osx
```
- For macOS (M1):
```bash
yarn run build:osxm1
```
- For Linux (x64):
```bash
yarn run build:linux
```
- For Linux (32-bit):
```bash
yarn run build:linux32
```
- For Linux (ARMv7l):
```bash
yarn run build:linuxarmv7l
```
### After application starts
- Authorize Whatsapp client by scanning the QR code with the phone
- Go to the LLM Setting menu (in the top menu bar) select Settings and fill the config in the window (either OpenAI API key, eitther URL for local LLM API)
## Contributing
Contributions to **LLM for WhatsApp** are welcome. Please read the [CONTRIBUTING.md](CONTRIBUTING.md) file for guidelines on how to contribute.
## Issues
If you encounter any issues or have feature suggestions, please submit them to the [issues page](https://github.com/iongpt/LLM-for-Whatsapp/issues).
## Known issues
- It gets stuck at loading if you have no contacts on Whatsapp. At least one contact is required to load the app
- I only tested it on Mac M1 and Windows x64, it is confirmed to work on Windows, but it will require permission for the app to interact with Chrome
## License
This project is licensed under the MIT License - see the [LICENSE.md](LICENSE.md) file for details.
## Author
Developed by IonGPT.
---
", Assign "at most 3 tags" to the expected json: {"id":"6711","tags":[]} "only from the tags list I provide: [{"id":77,"name":"3d"},{"id":89,"name":"agent"},{"id":17,"name":"ai"},{"id":54,"name":"algorithm"},{"id":24,"name":"api"},{"id":44,"name":"authentication"},{"id":3,"name":"aws"},{"id":27,"name":"backend"},{"id":60,"name":"benchmark"},{"id":72,"name":"best-practices"},{"id":39,"name":"bitcoin"},{"id":37,"name":"blockchain"},{"id":1,"name":"blog"},{"id":45,"name":"bundler"},{"id":58,"name":"cache"},{"id":21,"name":"chat"},{"id":49,"name":"cicd"},{"id":4,"name":"cli"},{"id":64,"name":"cloud-native"},{"id":48,"name":"cms"},{"id":61,"name":"compiler"},{"id":68,"name":"containerization"},{"id":92,"name":"crm"},{"id":34,"name":"data"},{"id":47,"name":"database"},{"id":8,"name":"declarative-gui "},{"id":9,"name":"deploy-tool"},{"id":53,"name":"desktop-app"},{"id":6,"name":"dev-exp-lib"},{"id":59,"name":"dev-tool"},{"id":13,"name":"ecommerce"},{"id":26,"name":"editor"},{"id":66,"name":"emulator"},{"id":62,"name":"filesystem"},{"id":80,"name":"finance"},{"id":15,"name":"firmware"},{"id":73,"name":"for-fun"},{"id":2,"name":"framework"},{"id":11,"name":"frontend"},{"id":22,"name":"game"},{"id":81,"name":"game-engine "},{"id":23,"name":"graphql"},{"id":84,"name":"gui"},{"id":91,"name":"http"},{"id":5,"name":"http-client"},{"id":51,"name":"iac"},{"id":30,"name":"ide"},{"id":78,"name":"iot"},{"id":40,"name":"json"},{"id":83,"name":"julian"},{"id":38,"name":"k8s"},{"id":31,"name":"language"},{"id":10,"name":"learning-resource"},{"id":33,"name":"lib"},{"id":41,"name":"linter"},{"id":28,"name":"lms"},{"id":16,"name":"logging"},{"id":76,"name":"low-code"},{"id":90,"name":"message-queue"},{"id":42,"name":"mobile-app"},{"id":18,"name":"monitoring"},{"id":36,"name":"networking"},{"id":7,"name":"node-version"},{"id":55,"name":"nosql"},{"id":57,"name":"observability"},{"id":46,"name":"orm"},{"id":52,"name":"os"},{"id":14,"name":"parser"},{"id":74,"name":"react"},{"id":82,"name":"real-time"},{"id":56,"name":"robot"},{"id":65,"name":"runtime"},{"id":32,"name":"sdk"},{"id":71,"name":"search"},{"id":63,"name":"secrets"},{"id":25,"name":"security"},{"id":85,"name":"server"},{"id":86,"name":"serverless"},{"id":70,"name":"storage"},{"id":75,"name":"system-design"},{"id":79,"name":"terminal"},{"id":29,"name":"testing"},{"id":12,"name":"ui"},{"id":50,"name":"ux"},{"id":88,"name":"video"},{"id":20,"name":"web-app"},{"id":35,"name":"web-server"},{"id":43,"name":"webassembly"},{"id":69,"name":"workflow"},{"id":87,"name":"yaml"}]" returns me the "expected json"