Spaces:
Sleeping
Sleeping
Update app.py
Browse files
app.py
CHANGED
|
@@ -28,7 +28,7 @@ def embed(text):
|
|
| 28 |
return outputs.hidden_states[-1][:,0,:].cpu().numpy()[0]
|
| 29 |
|
| 30 |
# --- 3. Base documentaire pour la métallurgie ---
|
| 31 |
-
#
|
| 32 |
docs = {
|
| 33 |
"doc1": "L’acier X42 a une résistance à la traction de 415 MPa.",
|
| 34 |
"doc2": "L’acier inoxydable 304 est résistant à la corrosion et à l’oxydation."
|
|
@@ -38,8 +38,8 @@ doc_embeddings = {k: embed(v) for k,v in docs.items()}
|
|
| 38 |
def search_best_doc(question):
|
| 39 |
q_emb = embed(question)
|
| 40 |
def cosine(a,b): return np.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b))
|
| 41 |
-
|
| 42 |
-
return docs[
|
| 43 |
|
| 44 |
# --- 4. Fonction de réponse avec GPT-OSS-20B ---
|
| 45 |
def respond(
|
|
@@ -54,8 +54,7 @@ def respond(
|
|
| 54 |
client = InferenceClient(token=hf_token.token, model="openai/gpt-oss-20b")
|
| 55 |
|
| 56 |
# Récupérer le contexte pertinent avec SteelBERT
|
| 57 |
-
|
| 58 |
-
context = docs[best_doc]
|
| 59 |
|
| 60 |
# Construire le prompt
|
| 61 |
messages = [{"role": "system", "content": system_message}]
|
|
|
|
| 28 |
return outputs.hidden_states[-1][:,0,:].cpu().numpy()[0]
|
| 29 |
|
| 30 |
# --- 3. Base documentaire pour la métallurgie ---
|
| 31 |
+
# Remplacez par vos documents techniques
|
| 32 |
docs = {
|
| 33 |
"doc1": "L’acier X42 a une résistance à la traction de 415 MPa.",
|
| 34 |
"doc2": "L’acier inoxydable 304 est résistant à la corrosion et à l’oxydation."
|
|
|
|
| 38 |
def search_best_doc(question):
|
| 39 |
q_emb = embed(question)
|
| 40 |
def cosine(a,b): return np.dot(a,b)/(np.linalg.norm(a)*np.linalg.norm(b))
|
| 41 |
+
best_key = max(docs, key=lambda k: cosine(q_emb, doc_embeddings[k]))
|
| 42 |
+
return docs[best_key] # retourne directement le texte du document
|
| 43 |
|
| 44 |
# --- 4. Fonction de réponse avec GPT-OSS-20B ---
|
| 45 |
def respond(
|
|
|
|
| 54 |
client = InferenceClient(token=hf_token.token, model="openai/gpt-oss-20b")
|
| 55 |
|
| 56 |
# Récupérer le contexte pertinent avec SteelBERT
|
| 57 |
+
context = search_best_doc(message)
|
|
|
|
| 58 |
|
| 59 |
# Construire le prompt
|
| 60 |
messages = [{"role": "system", "content": system_message}]
|