summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--g4f/api/__init__.py126
1 files changed, 63 insertions, 63 deletions
diff --git a/g4f/api/__init__.py b/g4f/api/__init__.py
index c52085dc..b19a721b 100644
--- a/g4f/api/__init__.py
+++ b/g4f/api/__init__.py
@@ -3,10 +3,10 @@ import random
import string
import time
-import requests
+# import requests
from flask import Flask, request
from flask_cors import CORS
-from transformers import AutoTokenizer
+# from transformers import AutoTokenizer
from g4f import ChatCompletion
@@ -95,67 +95,67 @@ def chat_completions():
# Get the embedding from huggingface
-def get_embedding(input_text, token):
- huggingface_token = token
- embedding_model = "sentence-transformers/all-mpnet-base-v2"
- max_token_length = 500
-
- # Load the tokenizer for the 'all-mpnet-base-v2' model
- tokenizer = AutoTokenizer.from_pretrained(embedding_model)
- # Tokenize the text and split the tokens into chunks of 500 tokens each
- tokens = tokenizer.tokenize(input_text)
- token_chunks = [
- tokens[i : i + max_token_length]
- for i in range(0, len(tokens), max_token_length)
- ]
-
- # Initialize an empty list
- embeddings = []
-
- # Create embeddings for each chunk
- for chunk in token_chunks:
- # Convert the chunk tokens back to text
- chunk_text = tokenizer.convert_tokens_to_string(chunk)
-
- # Use the Hugging Face API to get embeddings for the chunk
- api_url = f"https://api-inference.huggingface.co/pipeline/feature-extraction/{embedding_model}"
- headers = {"Authorization": f"Bearer {huggingface_token}"}
- chunk_text = chunk_text.replace("\n", " ")
-
- # Make a POST request to get the chunk's embedding
- response = requests.post(
- api_url,
- headers=headers,
- json={"inputs": chunk_text, "options": {"wait_for_model": True}},
- )
-
- # Parse the response and extract the embedding
- chunk_embedding = response.json()
- # Append the embedding to the list
- embeddings.append(chunk_embedding)
-
- # averaging all the embeddings
- # this isn't very effective
- # someone a better idea?
- num_embeddings = len(embeddings)
- average_embedding = [sum(x) / num_embeddings for x in zip(*embeddings)]
- embedding = average_embedding
- return embedding
-
-
-@app.route("/embeddings", methods=["POST"])
-def embeddings():
- input_text_list = request.get_json().get("input")
- input_text = " ".join(map(str, input_text_list))
- token = request.headers.get("Authorization").replace("Bearer ", "")
- embedding = get_embedding(input_text, token)
-
- return {
- "data": [{"embedding": embedding, "index": 0, "object": "embedding"}],
- "model": "text-embedding-ada-002",
- "object": "list",
- "usage": {"prompt_tokens": None, "total_tokens": None},
- }
+# def get_embedding(input_text, token):
+# huggingface_token = token
+# embedding_model = "sentence-transformers/all-mpnet-base-v2"
+# max_token_length = 500
+
+# # Load the tokenizer for the 'all-mpnet-base-v2' model
+# tokenizer = AutoTokenizer.from_pretrained(embedding_model)
+# # Tokenize the text and split the tokens into chunks of 500 tokens each
+# tokens = tokenizer.tokenize(input_text)
+# token_chunks = [
+# tokens[i : i + max_token_length]
+# for i in range(0, len(tokens), max_token_length)
+# ]
+
+# # Initialize an empty list
+# embeddings = []
+
+# # Create embeddings for each chunk
+# for chunk in token_chunks:
+# # Convert the chunk tokens back to text
+# chunk_text = tokenizer.convert_tokens_to_string(chunk)
+
+# # Use the Hugging Face API to get embeddings for the chunk
+# api_url = f"https://api-inference.huggingface.co/pipeline/feature-extraction/{embedding_model}"
+# headers = {"Authorization": f"Bearer {huggingface_token}"}
+# chunk_text = chunk_text.replace("\n", " ")
+
+# # Make a POST request to get the chunk's embedding
+# response = requests.post(
+# api_url,
+# headers=headers,
+# json={"inputs": chunk_text, "options": {"wait_for_model": True}},
+# )
+
+# # Parse the response and extract the embedding
+# chunk_embedding = response.json()
+# # Append the embedding to the list
+# embeddings.append(chunk_embedding)
+
+# # averaging all the embeddings
+# # this isn't very effective
+# # someone a better idea?
+# num_embeddings = len(embeddings)
+# average_embedding = [sum(x) / num_embeddings for x in zip(*embeddings)]
+# embedding = average_embedding
+# return embedding
+
+
+# @app.route("/embeddings", methods=["POST"])
+# def embeddings():
+# input_text_list = request.get_json().get("input")
+# input_text = " ".join(map(str, input_text_list))
+# token = request.headers.get("Authorization").replace("Bearer ", "")
+# embedding = get_embedding(input_text, token)
+
+# return {
+# "data": [{"embedding": embedding, "index": 0, "object": "embedding"}],
+# "model": "text-embedding-ada-002",
+# "object": "list",
+# "usage": {"prompt_tokens": None, "total_tokens": None},
+# }
def run_api():