assistant
assistant copied to clipboard
A WhatsApp chatbot that leverages Bing AI's and others LLMs conversational capabilities.
WhatsApp AI Assistant
Welcome to the WhatsApp AI Assistant repository, where you'll find a remarkable WhatsApp chatbot designed to function as your very own AI-powered personal assistant. This chatbot leverages the power of Language Model (LLM) technology.
| Sydney | OpenRouter Models* |
|---|---|
Feature Comparison
| Feature | Sydney (BingAI Jailbreak) | OpenRouter Models* |
|---|---|---|
| Google/Bing Searching | ✅ | ✅ |
| Google Calendar | ❌ | ✅ |
| Gmail | ❌ | ❌ |
| Communication Capability | ✅ | ✅ |
| Group Chat Compatibility | ✅ | ✅ |
| Voice Message Capability | ✅ | ✅ |
| Create Basic Text Reminders | ✅ | ❌ |
| Image Recognition | ✅ | ❌ |
| Image Generation | ❌ | ✅ |
| PDF Reading | ❌ | ❌ |
NOTE: We do not test every LLM that OpenRouter provides. Typically, we only test OpenAI GPT-3.5 and Google Gemini Pro.
Getting Started
Prerequisites
- Node.js >= 18.15.0
- Node.js version >= 20.x.x users you should use
node --loader ts-node/esm src/index.tsinstead ofpnpm start - A spare WhatsApp number
Installation
Sydney/BingChat
- Clone this repository
git clone https://github.com/WAppAI/assistant.git
- Install the dependencies
pnpm install
- Rename .env.example to
.env
cp .env.example .env
-
Login with your Bing account and edit
.env'sBING_COOKIESenvironment variable to the cookies string from bing.com. For detailed instructions here.NOTE: Occasionally, you might encounter an error stating,
User needs to solve CAPTCHA to continue.To resolve this issue, please solve the captcha [here]https://www.bing.com/turing/captcha/challenge, while logged in with the same account associated with your BING_COOKIES. -
Read and fill in the remaining information in the
.envfile. -
Run
pnpm build
- Start the bot
pnpm start
-
Connect your WhatsApp account to the bot by scanning the generated QR Code in the CLI.
-
Send a message to your WhatsApp account to start a conversation with Sydney!
OpenRouter
- Clone this repository
git clone https://github.com/WAppAI/assistant.git
- Install the dependencies
pnpm install
- Rename .env.example to
.env
cp .env.example .env
-
Read and fill in the remaining information in the
.envfile. -
Instructions on how to use langchain tools like Google Calendar and search will be in the
.env -
Run
pnpm build
- Start the bot
pnpm start
-
Connect your WhatsApp account to the bot by scanning the generated QR Code in the CLI.
-
Send a message to your WhatsApp account to start a conversation with the bot!
Usage
The AI's are designed to respond to natural language queries from users. You can ask them questions, or just have a casual conversation.
Voice Messages
When dealing with voice messages, you have two options for transcription: utilizing the Whisper API or the local method. Each option has its own considerations, including cost and performance.
Whisper API:
- Cost: Utilizing the Whisper API incurs a cost of US$0.06 per 10 minutes of audio.
- Setup:
- Obtain an OpenAI API key and place it in the
.envfile under theOPENAI_API_KEYvariable. - Set
TRANSCRIPTION_ENABLEDto"true"andTRANSCRIPTION_METHODto"whisper-api". While setting a language inTRANSCRIPTION_LANGUAGEis not mandatory, it is recommended for better performance.
- Obtain an OpenAI API key and place it in the
Local Mode:
- Cost: The local method is free but may be slower and less precise.
- Setup:
- Download a model of your choice from here. Download any
.binfile and place it in the./whisper/modelsfolder. - Modify the
.envfile by changingTRANSCRIPTION_ENABLEDto"true",TRANSCRIPTION_METHODto"local", and"TRANSCRIPTION_MODEL"with the name of the model you downloaded. While setting a language inTRANSCRIPTION_LANGUAGEis not mandatory, it is recommended for better performance.
- Download a model of your choice from here. Download any
Group Chat
To utilize it in a group chat, you will need to either mention it by using her username with the "@" symbol (e.g., @Sydney) or reply directly to her last message.
Available commands
!help: Displays a message listing all available commands.!helpfollowed by a specific command, e.g.,!help reset: Provides detailed information about the selected command.- If you wish to customize the command prefix, you can do so in the
.envfile to better suit your preferences.
Contribute
Your contributions to Sydney are welcome in any form. Whether you'd like to:
-
Report Issues: If you come across bugs or have ideas for new features, please open an issue to discuss and track these items.
-
Submit Pull Requests (PRs): Feel free to contribute directly by opening pull requests. Your contributions are greatly appreciated and help improve Sydney.
-
If you want us to add a tool from the js langchain open an issue asking for it.
Your involvement is valued, and you're encouraged to contribute in the way that suits you best.
Hire Us
Both creators of this project, Veigamann and Luisotee, are currently seeking new job opportunities.
If you have any job opportunities, please feel free to contact us through the emails provided in our GitHub profiles.