adowu commited on
Commit
0bc4efa
1 Parent(s): be28415

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +15 -17
app.py CHANGED
@@ -28,8 +28,8 @@ async def generate_keywords(query):
28
  prompt = f"Na podstawie poniższego pytania, wygeneruj 3-5 słów kluczowych, które najlepiej opisują główne tematy i koncepcje prawne zawarte w pytaniu. Podaj tylko słowa kluczowe, oddzielone przecinkami.\n\nPytanie: {query}\n\nSłowa kluczowe:"
29
 
30
  response = await client.text_generation(
31
- "Qwen/Qwen2.5-72B-Instruct",
32
- prompt,
33
  max_new_tokens=50,
34
  temperature=0.3,
35
  top_p=0.9
@@ -38,15 +38,6 @@ async def generate_keywords(query):
38
  keywords = [keyword.strip() for keyword in response.split(',')]
39
  return keywords
40
 
41
- def search_relevant_chunks(keywords, chunks, model, top_k=3):
42
- keyword_embedding = model.encode(keywords, convert_to_tensor=True)
43
- chunk_embeddings = model.encode([chunk['text'] for chunk in chunks], convert_to_tensor=True)
44
-
45
- cos_scores = util.pytorch_cos_sim(keyword_embedding, chunk_embeddings)
46
- top_results = torch.topk(cos_scores.mean(dim=0), k=top_k)
47
-
48
- return [chunks[idx] for idx in top_results.indices]
49
-
50
  async def generate_ai_response(query, relevant_chunks):
51
  client = InferenceClient(token=HF_TOKEN)
52
 
@@ -55,15 +46,12 @@ async def generate_ai_response(query, relevant_chunks):
55
  context += f"{chunk['metadata']['nazwa']} - Artykuł {chunk['metadata']['article']}:\n"
56
  context += f"{chunk['text']}\n\n"
57
 
58
- messages = [
59
- {"role": "system", "content": "Jesteś asystentem prawniczym. Odpowiadaj na pytania na podstawie podanego kontekstu prawnego."},
60
- {"role": "user", "content": f"Kontekst: {context}\n\nPytanie: {query}"}
61
- ]
62
 
63
  response = ""
64
  async for token in client.text_generation(
65
- "Qwen/Qwen2.5-72B-Instruct",
66
- messages,
67
  max_new_tokens=2048,
68
  temperature=0.5,
69
  top_p=0.7,
@@ -72,6 +60,16 @@ async def generate_ai_response(query, relevant_chunks):
72
  response += token
73
  yield token
74
 
 
 
 
 
 
 
 
 
 
 
75
  def main():
76
  st.title("Chatbot Prawny z AI")
77
 
 
28
  prompt = f"Na podstawie poniższego pytania, wygeneruj 3-5 słów kluczowych, które najlepiej opisują główne tematy i koncepcje prawne zawarte w pytaniu. Podaj tylko słowa kluczowe, oddzielone przecinkami.\n\nPytanie: {query}\n\nSłowa kluczowe:"
29
 
30
  response = await client.text_generation(
31
+ model="Qwen/Qwen2.5-72B-Instruct",
32
+ prompt=prompt,
33
  max_new_tokens=50,
34
  temperature=0.3,
35
  top_p=0.9
 
38
  keywords = [keyword.strip() for keyword in response.split(',')]
39
  return keywords
40
 
 
 
 
 
 
 
 
 
 
41
  async def generate_ai_response(query, relevant_chunks):
42
  client = InferenceClient(token=HF_TOKEN)
43
 
 
46
  context += f"{chunk['metadata']['nazwa']} - Artykuł {chunk['metadata']['article']}:\n"
47
  context += f"{chunk['text']}\n\n"
48
 
49
+ prompt = f"Jesteś asystentem prawniczym. Odpowiedz na poniższe pytanie na podstawie podanego kontekstu prawnego.\n\nKontekst: {context}\n\nPytanie: {query}\n\nOdpowiedź:"
 
 
 
50
 
51
  response = ""
52
  async for token in client.text_generation(
53
+ model="Qwen/Qwen2.5-72B-Instruct",
54
+ prompt=prompt,
55
  max_new_tokens=2048,
56
  temperature=0.5,
57
  top_p=0.7,
 
60
  response += token
61
  yield token
62
 
63
+ def search_relevant_chunks(keywords, chunks, model, top_k=3):
64
+ keyword_embedding = model.encode(keywords, convert_to_tensor=True)
65
+ chunk_embeddings = model.encode([chunk['text'] for chunk in chunks], convert_to_tensor=True)
66
+
67
+ cos_scores = util.pytorch_cos_sim(keyword_embedding, chunk_embeddings)
68
+ top_results = torch.topk(cos_scores.mean(dim=0), k=top_k)
69
+
70
+ return [chunks[idx] for idx in top_results.indices]
71
+
72
+
73
  def main():
74
  st.title("Chatbot Prawny z AI")
75