Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/Amm1rr/WebAI-to-API
Claude, Gemini to API : ) (Don't need API KEY)
https://github.com/Amm1rr/WebAI-to-API
ai api bard chatbot chatgpt chatgpt-api claude claude-3 claude-ai claude-api development fastapi free gemini gemini-api google-bard-api python webserver webservice
Last synced: 10 days ago
JSON representation
Claude, Gemini to API : ) (Don't need API KEY)
- Host: GitHub
- URL: https://github.com/Amm1rr/WebAI-to-API
- Owner: Amm1rr
- License: mit
- Created: 2023-07-22T21:06:30.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2024-06-02T13:03:40.000Z (6 months ago)
- Last Synced: 2024-11-09T13:39:01.374Z (about 1 month ago)
- Topics: ai, api, bard, chatbot, chatgpt, chatgpt-api, claude, claude-3, claude-ai, claude-api, development, fastapi, free, gemini, gemini-api, google-bard-api, python, webserver, webservice
- Language: Python
- Homepage:
- Size: 2.45 MB
- Stars: 242
- Watchers: 6
- Forks: 43
- Open Issues: 3
-
Metadata Files:
- Readme: README.MD
- License: LICENSE
Awesome Lists containing this project
- project-awesome - Amm1rr/WebAI-to-API - Claude, Gemini to API : ) (Don't need API KEY) (Python)
README
**NOTE:** This is a research project. Please do not use it commercially and use it responsibly.
# WebAI to API
This project implements a web API that offers a unified interface to Google Gemini, and Claude 3.
[![Image](assets/WebAI-Configuration-Thumb.jpg)](assets/WebAI-Configuration.jpg)
### Key Features
- **Self-hosted:** Python/FastAPI enables flexibility to run anywhere. Not locked into proprietary platforms.
- **Streaming support:** Real-time responses from Claude streaming.
- **Lightweight and scalable:** Built with FastAPI for high performance.
- **API Key:** No API Key required.
### Status
✅ **_Claude-3_** API integration is also fully implemented and available
✅ **_Google Gemini_** API integration available now
✅ **_UI Configuration_**: Implement routing for [localhost:8000/WebAI](http://localhost:8000/WebAI) path
⚙️ **_PIP_**: In progress
[![Image](assets/Endpoints-Docs-Thumb.png)](assets/Endpoints-Docs.png)
This repository is up-to-date.
Please don't forget to give a Star ⭐
### Prerequisites
Python version >= 3.10
Accounts on the following (all offer free signups):- Google Gemini: https://gemini.google.com/
- Claude: https://claude.ai/Then, add your token(s) to the [**`Config.conf`**](#configuration) file. (see [**Configuration**](#configuration) section).
> [!NOTE]
>
> **Note**: [**Claude**](https://claude.ai/) and [**Gemini**](https://gemini.google.com/) offer Auto Login options - you can either log in through your browser and skip this step.
## Installation
### Step 1. Clone Repository
```bash
git clone https://github.com/Amm1rr/WebAI-to-API.git && cd WebAI-to-APIpython -m venv .venv
source .venv/bin/activate # Linux/macOS
.venv\Scripts\activate # Windowspip install -r requirements.txt
```
### Step 2. Start Web Server
Navigate into the **`webai2api`** directory, and run the web server:
```bash
cd WebAI-to-API/webai2api/python run.py
```
Now the _API documentation_ and _Configuration Web UI_ should be available at the following addresses:
> [!TIP]
>
> **Open Web UI Configuration: [http://localhost:8000/WebAI](http://localhost:8000/WebAI)**
>
> **Open API documentation: [http://localhost:8000/docs](http://localhost:8000/docs)**
### Available **Endpoints:**
> [!NOTE]
>
> **Gemini**
>
> **http://localhost:8000/gemini**
>
> ---
>
> **Claude**
>
> **http://localhost:8000/claude**
>
> ---
>
> **Claude/Gemini**
>
> **http://localhost:8000/v1/chat/completions**
**Input / Output**
```bash
# Input:
_____{
"message": "Hi, Who are you?",
"stream": true
}--------------------
# Output:
_____{
I am a Chatbot assistant :)
}--------------------
# Response Output:
_____# Streaming
"String"# Not Streaming
"String"```
## Web UI Development Environment Setup (Optional)
#### Prerequisites:
- [Node.js](http://nodejs.org): Download and install from the official website (https://nodejs.org)
First , **Navigate to the UI directory:**
```bash
cd WebAI-to-API/webai2api/UI
```1. **Install dependencies:**
```bash
npm install
```2. **Build the project:**
```bash
npm run build
```
## Example
Once you have launched the web server using [`python webai2api\run.py`](#step-2-start-web-server):
> [!NOTE]
>
> Note: The first argument to run the example determines whether to return streaming or not.```bash
cd examples/python WebAPI-to-API/webai2api/test.py
OR
python example_claude.py false
python example_claude.py truepython example_gemini.py
```
or try **Claude** with **cURL**
run this cURL command in a terminal window:
```bash
curl -X 'POST' \
'http://localhost:8000/claude' \
-H 'accept: application/json' \
-H 'Content-Type: application/json' \
-d '{
"message": "who are you?",
"stream": false
}'```
> [!NOTE]
>
> **Note**: The **`session_id`** is configured in the [**Config.conf**](#configuration) file. If you send this variable empty, it will use the [**Config.conf**](#configuration)
## Usage
#### How to find tokens
> [!NOTE]
>
> **Note**: [**Claude**](https://claude.ai/) and [**Gemini**](https://gemini.google.com/) offer two authentication options - you can either log in through your browser and skip this step, or you can follow the instructions below to configure the authentication.> [!IMPORTANT]
>
> "The auto login by browser issue is caused by using multiple accounts or browser profiles. It will take some time to fully resolve. A future update will address it. For now, if you have problems logging in with your browsers, try logging in with just one browser or manually copy sessions and cookies as a workaround, as described in the instructions below."
The easiest way is to just log in to the chatbot websites. ([Claude](https://claude.ai/) | [Gemini](https://gemini.google.com/))
OR
First you need to add your tokens to the [**`Config.conf`**](#configuration) file (see [**Configuration**](#configuration) section).
#### Gemini
[![Image](assets/Bard-Thumb.jpg)](assets/Bard.jpg)
**Method 1:**
For Gemini, all you need to do is [login](https://gemini.google.com/) to your account using your web browser. (Firefox, Chrome, Safari, Edge...)**Method 2:**
_`Google Gemini:`_ Please obtain the cookies mentioned here from an authorized session on gemini.google.com. The cookies can be used to send POST requests to the /gemini endpoint along with a message in a JSON payload. It is important that the **session_id**, which is your **\_\_Secure-1PSID** cookie, and the **session_idts** and **session_idcc**, which is your **Secure-1PSIDTS** and **Secure-1PSIDCC** cookie, are included in the request. ([Screenshot](assets/Bard.jpg))| Name | Session Name |
|----------------|--------------------|
| `session_id` | `__Secure-1PSID` |
| `session_idts` | `__Secure-1PSIDTS` |
| `session_idcc` | `__Secure-1PSIDCC` |1. Login to [gemini.google.com](https://gemini.google.com)
2. Open `Developer Tools` (Press **F12**)
3. Go to `Application Tab`
4. Go to `Cookies Tab`
5. Copy the content of `__Secure-1PSID` and `__Secure-1PSIDTS` and `__Secure-1PSIDCC`. Copy the value of those cookie.
6. Set in **[Config.conf](#configuration)** file.
#### Claude
[![Image](assets/Claude-Thumb.jpg)](assets/Claude.jpg)
**Method 1:**
For Claude, all you need to do is [login](https://claude.ai/) to your account using your web browser. (Firefox, Chrome, Safari, Edge...)**Method 2:**
_`Claude:`_ You can get cookie from the browser's developer tools network tab ( see for any [claude.ai](https://claude.ai/) requests check out cookie ,copy whole value ) or storage tab ( You can find cookie of claude.ai ,there will be four values ) ([Screenshot](assets/Claude.jpg))1. Login to [claude.ai](https://claude.ai/)
2. Open `Developer Tools` (Press **F12**)
3. Go to `Network Tab`
4. Select an ajax request (like step 3 in [picture](assets/Claude.jpg))
5. Copy the content of `Cookie`
6. Set in **[Config.conf](#configuration)** file.
## Configuration
- Open Web UI Panel: **[http://localhost:8000/WebAI](http://localhost:8000/WebAI)**
How to [find tokens](#usage)
- [Google Gemini](#gemini)
- [Claude](#claude)> [!NOTE]
>
> **Note**: Claude and Gemini present Auto Login options - logging in through your browser or configuring Claude and Gemini using the provided config file.
### Configuring the Model Type for `/v1/chat/completions`
You can specify the model type in the settings for the `/v1/chat/completions` endpoint. The available options are "Claude" and "Gemini".
By default, the system uses the "Claude" model.```bash
# Case-Sensitive[Main]
Model=Claude
# or
Model=Gemini
```
#### Config File Path:
- WebAI-to-API\webai2api\Config.conf
```bash
# Case-Sensitive[Main]
Model = [Claude] or [Gemini][Claude]
COOKIE=[YOURS][Gemini]
SESSION_ID=[YOURS]
SESSION_IDTS=[YOURS]
SESSION_IDCC=[YOURS]```
## Licensing
This project is licensed under the MIT License. Feel free to use it however you like.
[![](https://visitcount.itsvg.in/api?id=amm1rr&label=V&color=0&icon=2&pretty=true)](https://github.com/Amm1rr/)