bibibi12345 commited on
Commit
8b27505
·
1 Parent(s): ebec74a
app/api_helpers.py CHANGED
@@ -18,7 +18,6 @@ from message_processing import (
18
  convert_to_openai_format,
19
  convert_chunk_to_openai,
20
  create_final_chunk,
21
- split_text_by_completion_tokens,
22
  parse_gemini_response_for_reasoning_and_content, # Added import
23
  extract_reasoning_by_tags # Added for new OpenAI direct reasoning logic
24
  )
 
18
  convert_to_openai_format,
19
  convert_chunk_to_openai,
20
  create_final_chunk,
 
21
  parse_gemini_response_for_reasoning_and_content, # Added import
22
  extract_reasoning_by_tags # Added for new OpenAI direct reasoning logic
23
  )
app/message_processing.py CHANGED
@@ -6,8 +6,6 @@ import urllib.parse
6
  from typing import List, Dict, Any, Union, Literal, Tuple # Added Tuple
7
 
8
  from google.genai import types
9
- from google.genai.types import HttpOptions as GenAIHttpOptions
10
- from google import genai as google_genai_client
11
  from models import OpenAIMessage, ContentPartText, ContentPartImage
12
 
13
  SUPPORTED_ROLES = ["user", "model"]
@@ -322,36 +320,4 @@ def convert_chunk_to_openai(chunk: Any, model: str, response_id: str, candidate_
322
  def create_final_chunk(model: str, response_id: str, candidate_count: int = 1) -> str:
323
  choices = [{"index": i, "delta": {}, "finish_reason": "stop"} for i in range(candidate_count)]
324
  final_chunk_data = {"id": response_id, "object": "chat.completion.chunk", "created": int(time.time()), "model": model, "choices": choices}
325
- return f"data: {json.dumps(final_chunk_data)}\n\n"
326
-
327
- def split_text_by_completion_tokens(
328
- gcp_creds: Any, gcp_proj_id: str, gcp_loc: str, model_id_for_tokenizer: str,
329
- full_text_to_tokenize: str, num_completion_tokens_from_usage: int
330
- ) -> tuple[str, str, List[str]]:
331
- if not full_text_to_tokenize: return "", "", []
332
- try:
333
- sync_tokenizer_client = google_genai_client.Client(
334
- vertexai=True, credentials=gcp_creds, project=gcp_proj_id, location=gcp_loc,
335
- http_options=GenAIHttpOptions(api_version="v1")
336
- )
337
- token_compute_response = sync_tokenizer_client.models.compute_tokens(model=model_id_for_tokenizer, contents=full_text_to_tokenize)
338
- all_final_token_strings = []
339
- if token_compute_response.tokens_info:
340
- for token_info_item in token_compute_response.tokens_info:
341
- for api_token_bytes in token_info_item.tokens:
342
- intermediate_str = api_token_bytes.decode('utf-8', errors='replace') if isinstance(api_token_bytes, bytes) else api_token_bytes
343
- final_token_text = ""
344
- try:
345
- b64_decoded_bytes = base64.b64decode(intermediate_str)
346
- final_token_text = b64_decoded_bytes.decode('utf-8', errors='replace')
347
- except Exception: final_token_text = intermediate_str
348
- all_final_token_strings.append(final_token_text)
349
- if not all_final_token_strings: return "", full_text_to_tokenize, []
350
- if not (0 < num_completion_tokens_from_usage <= len(all_final_token_strings)):
351
- return "", "".join(all_final_token_strings), all_final_token_strings
352
- completion_part_tokens = all_final_token_strings[-num_completion_tokens_from_usage:]
353
- reasoning_part_tokens = all_final_token_strings[:-num_completion_tokens_from_usage]
354
- return "".join(reasoning_part_tokens), "".join(completion_part_tokens), all_final_token_strings
355
- except Exception as e_tok:
356
- print(f"ERROR: Tokenizer failed in split_text_by_completion_tokens: {e_tok}")
357
- return "", full_text_to_tokenize, []
 
6
  from typing import List, Dict, Any, Union, Literal, Tuple # Added Tuple
7
 
8
  from google.genai import types
 
 
9
  from models import OpenAIMessage, ContentPartText, ContentPartImage
10
 
11
  SUPPORTED_ROLES = ["user", "model"]
 
320
  def create_final_chunk(model: str, response_id: str, candidate_count: int = 1) -> str:
321
  choices = [{"index": i, "delta": {}, "finish_reason": "stop"} for i in range(candidate_count)]
322
  final_chunk_data = {"id": response_id, "object": "chat.completion.chunk", "created": int(time.time()), "model": model, "choices": choices}
323
+ return f"data: {json.dumps(final_chunk_data)}\n\n"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
app/requirements.txt CHANGED
@@ -3,7 +3,7 @@ uvicorn==0.27.1
3
  google-auth==2.38.0
4
  google-cloud-aiplatform==1.86.0
5
  pydantic==2.6.1
6
- google-genai==1.13.0
7
  httpx>=0.25.0
8
  openai
9
  google-auth-oauthlib
 
3
  google-auth==2.38.0
4
  google-cloud-aiplatform==1.86.0
5
  pydantic==2.6.1
6
+ google-genai==1.17.0
7
  httpx>=0.25.0
8
  openai
9
  google-auth-oauthlib