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}]
|