Skip to main content

Reverse engineering of Google's Bard chatbot

Project description

Bard

Reverse engineering of Google's Gemini chatbot API, formerly BARD.

Installation

 $ pip3 install --upgrade GoogleBard1

Authentication

Go to https://bard.google.com/

  • F12 for console
  • Copy the values
    • Session: Go to Application → Cookies → __Secure-1PSID and __Secure-1PSIDTS. Copy the value of those cookie.

Usage

$ python3 -m Bard -h
usage: Bard.py [-h] --session SESSION --session_ts SESSION_TS

options:
  -h, --help            show this help message and exit
  --session SESSION     __Secure-1PSID cookie
  --session_ts SESSION_TS
                        __secure_1psidts cookie.

Quick mode

$ export BARD_QUICK="true"
$ export BARD__Secure_1PSID="<__Secure-1PSID>"
$ export BARD__Secure_1PSIDTS="<__Secure-1PSIDTS>"
$ python3 -m Bard

Environment variables can be placed in .zshrc.

Example bash shortcut:

# USAGE1: bard QUESTION
# USAGE2: echo "QUESTION" | bard
bard () {
	export BARD_QUICK=true
	export BARD__Secure_1PSID=<__Secure-1PSID>
	export BARD__Secure_1PSIDTS=<__Secure-1PSIDTS>
	python3 -m Bard "${@:-$(</dev/stdin)}" | tail -n+7
}

Implementation:

from os import environ
from Bard import Chatbot

Secure_1PSID = environ.get("BARD__Secure_1PSID")
Secure_1PSIDTS = environ.get("BARD__Secure_1PSIDTS")
chatbot = Chatbot(Secure_1PSID, Secure_1PSIDTS)

answer = chatbot.ask("Hello, how are you?")

print(answer['content']

Async Implementation:

import asyncio
from os import environ
from Bard import AsyncChatbot

Secure_1PSID = environ.get("BARD__Secure_1PSID")
Secure_1PSIDTS = environ.get("BARD__Secure_1PSIDTS")

async def main():
    chatbot = await AsyncChatbot.create(Secure_1PSID, Secure_1PSIDTS)
    response = await chatbot.ask("Hello, how are you?")
    print(response['content'])

asyncio.run(main())

[!IMPORTANT] The cookies expire after a short period; ensure you update them as frequent as possible.

Developer Documentation

Credits:

  • discordtehe - Derivative of his original reverse engineering

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

GoogleBard1-2.1.4.tar.gz (6.5 kB view details)

Uploaded Source

Built Distribution

GoogleBard1-2.1.4-py3-none-any.whl (6.8 kB view details)

Uploaded Python 3

File details

Details for the file GoogleBard1-2.1.4.tar.gz.

File metadata

  • Download URL: GoogleBard1-2.1.4.tar.gz
  • Upload date:
  • Size: 6.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for GoogleBard1-2.1.4.tar.gz
Algorithm Hash digest
SHA256 f21a0960cee121a7e5d1c13e444d3bef85bc585af25f0aa3433c76640a668b9b
MD5 6affae5ca408df27f7970309e8bd150c
BLAKE2b-256 74094f6616798faf77d175116c693fe50de03869165ce6ed566f642f0270b09a

See more details on using hashes here.

File details

Details for the file GoogleBard1-2.1.4-py3-none-any.whl.

File metadata

  • Download URL: GoogleBard1-2.1.4-py3-none-any.whl
  • Upload date:
  • Size: 6.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.0

File hashes

Hashes for GoogleBard1-2.1.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7afb22c21b9861e66792855186b77c1107afa2f7167f1734d4db62602fa97644
MD5 b42e7ff5f7fb7e07fd0facf904fb3d5f
BLAKE2b-256 60862e6b5efe1d813404dc247fc92a799a1fb261a21e298f009797bb9dfe1b58

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page