Claude & Bard Telegram Bot
This is a Telegram bot that intereacts with Anthropic Claude and Google Bard.
Before using this bot, you need to apply for access credentials for Claude and Bard respectively:
-
Obtain APIs: Claude (official) | Bard (reverse engineered)
If you only have access to one of the models, you can still continue to use this bot. Some functions may be limited due to lack of authorization for the other model.
Features
- Support of official Claude API and reverse engineered Bard API
- Support of partial Markdown formatting
- Send extremely long inputs in segments
- Resend the question and regenerate the answer
- Private chat, group chat, independent chat session
- Claude only:
- Streaming output
- Modify model's version (including 100k) and temperature
- Bard only:
- Toogle between different draft responses
- View reference links and Google Search keywords
- View images from Google Search
Claude | Bard |
---|---|
✅ Non-English ✅ Streaming output ❌ Access to the Internet |
❌ Non-English ❌ Streaming output ✅ Access to the Internet |
Getting Started
Deployment (Zeabur)
Deployment (Local)
-
Clone this repository.
-
Configure the bot in the following two ways:
-
Create
config/config.yml
and fill in the information with reference toconfig/config.example.yml
. -
or Set environment variables:
export BOT_TOKEN="your bot token" export USER_IDS="user_id1,user_id2,..." export CLAUDE_API="your claude api" # ignore it if you don't want to use claude export BARD_API="your bard api" # ignore it if you don't want to use bard
-
-
Start the bot in the following two ways:
-
Docker (with docker engine pre-installed):
docker compose up
-
or Scripts (with python >= 3.8 and python3-venv pre-installed):
# create the virtual environment bash scripts/setup.sh # start the bot bash scripts/run.sh
-
Usage
Commands
/id
: get your chat identifier/start
: start the bot and get help message/help
: get help message/reset
: reset the chat history/settings
: show Claude & Bard settings/mode
: switch between Claude and Bard/model NAME
: change model (Claude only)- Options: claude-1, claude-1-100k, claude-instant-1, claude-instant-1-100k, claude-1.3, claude-1.3-100k, claude-1.2, claude-1.0, claude-instant-1.1, claude-instant-1.1-100k, claude-instant-1.0
/temp VALUE
: set temperature (Claude only)- Range: float in [0, 1]
- Impact: amount of randomness injected into the response
- Suggestion: temp closer to 0 for analytical / multiple choice, and temp closer to 1 for creative and generative tasks
/cutoff VALUE
: adjust cutoff (Claude only)- Range: int > 0
- Impact:: smaller cutoff indicates higher frequency of streaming output
- Suggestion: 50 for private chat, 150 for group chat
/seg
: send messages in segments, suitable for Claude's 100k models, example below:- Send
/seg
first - Paste a long text and send (or send a series of text in segments)
- Input your other questions and send
- Send
/seg
again - Bot will respond and you can continue the conversation
- Send
/retry
: regenerate the answer. Use/retry TEXT
to modify your last input.
Others
📝 View other drafts
: click to see other drafts (Bard Only)🔍 Google it
: click to view the search results (Bard Only)
Acknowledgements
This code is based on Lakr233's ChatBot-TGLM6B.
The client library for Claude API is anthropics's anthropic-sdk-python.
The client library for Bard API is acheong08's Bard.
Huge thanks to them!!! 🥰🥰🥰