EnzGamers commited on
Commit
ee60681
·
verified ·
1 Parent(s): 32a81bd

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +27 -11
app.py CHANGED
@@ -4,6 +4,7 @@ import torch
4
  from transformers import AutoModelForCausalLM, AutoTokenizer
5
  import time
6
  import uuid
 
7
 
8
  # --- Configuration ---
9
  MODEL_ID = "deepseek-ai/deepseek-coder-1.3b-instruct"
@@ -28,9 +29,10 @@ class ChatMessage(BaseModel):
28
  content: str
29
 
30
  class ChatCompletionRequest(BaseModel):
31
- model: str
32
- messages: list[ChatMessage]
33
- max_tokens: int = 250
 
34
 
35
  class ChatCompletionResponseChoice(BaseModel):
36
  index: int = 0
@@ -42,15 +44,29 @@ class ChatCompletionResponse(BaseModel):
42
  object: str = "chat.completion"
43
  created: int
44
  model: str
45
- choices: list[ChatCompletionResponseChoice]
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
 
47
- # --- Définition de l'API compatible OpenAI ---
48
- # LA SEULE LIGNE QUI CHANGE EST CELLE-CI : on a enlevé le "/v1"
49
- @app.post("/chat/completions")
50
  async def create_chat_completion(request: ChatCompletionRequest):
51
- """
52
- Endpoint compatible avec l'API OpenAI Chat Completions.
53
- """
54
  user_prompt = ""
55
  if request.messages and request.messages[-1].role == "user":
56
  user_prompt = request.messages[-1].content
@@ -70,7 +86,7 @@ async def create_chat_completion(request: ChatCompletionRequest):
70
  completion_response = ChatCompletionResponse(
71
  id=f"chatcmpl-{uuid.uuid4()}",
72
  created=int(time.time()),
73
- model=request.model,
74
  choices=[choice]
75
  )
76
 
 
4
  from transformers import AutoModelForCausalLM, AutoTokenizer
5
  import time
6
  import uuid
7
+ from typing import Optional, List
8
 
9
  # --- Configuration ---
10
  MODEL_ID = "deepseek-ai/deepseek-coder-1.3b-instruct"
 
29
  content: str
30
 
31
  class ChatCompletionRequest(BaseModel):
32
+ # CHANGEMENT 1: Rendre le champ 'model' optionnel pour éviter l'erreur 422
33
+ model: Optional[str] = None
34
+ messages: List[ChatMessage]
35
+ max_tokens: Optional[int] = 250
36
 
37
  class ChatCompletionResponseChoice(BaseModel):
38
  index: int = 0
 
44
  object: str = "chat.completion"
45
  created: int
46
  model: str
47
+ choices: List[ChatCompletionResponseChoice]
48
+
49
+ class ModelData(BaseModel):
50
+ id: str
51
+ object: str = "model"
52
+ created: int = int(time.time())
53
+ owned_by: str = "user"
54
+
55
+ class ModelList(BaseModel):
56
+ object: str = "list"
57
+ data: List[ModelData]
58
+
59
+ # --- Définition des API ---
60
+
61
+ # CHANGEMENT 2: Ajouter un endpoint /models pour satisfaire l'extension
62
+ @app.get("/models", response_model=ModelList)
63
+ async def list_models():
64
+ """Endpoint pour lister les modèles disponibles."""
65
+ return ModelList(data=[ModelData(id=MODEL_ID)])
66
 
67
+ @app.post("/chat/completions", response_model=ChatCompletionResponse)
 
 
68
  async def create_chat_completion(request: ChatCompletionRequest):
69
+ """Endpoint principal pour la génération de texte."""
 
 
70
  user_prompt = ""
71
  if request.messages and request.messages[-1].role == "user":
72
  user_prompt = request.messages[-1].content
 
86
  completion_response = ChatCompletionResponse(
87
  id=f"chatcmpl-{uuid.uuid4()}",
88
  created=int(time.time()),
89
+ model=MODEL_ID,
90
  choices=[choice]
91
  )
92