Jesselg commited on
Commit
dc36aa4
·
verified ·
1 Parent(s): a99c6d3

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +24 -27
app.py CHANGED
@@ -4,14 +4,12 @@ import requests
4
 
5
  # API Keys ophalen uit Hugging Face Secrets
6
  WEAVIATE_API_KEY = os.getenv("WEAVIATE_APIKEY")
7
- MISTRAL_API_KEY = os.getenv("MISTRAL_APIKEY")
8
 
9
- # Weaviate-instellingen
10
- WEAVIATE_URL = "https://ojk79flbtdqux0f4uua2qa.c0.europe-west3.gcp.weaviate.cloud/v1/graphql"
11
  HEADERS = {
12
  "Authorization": f"Bearer {WEAVIATE_API_KEY}",
13
- "X-Weaviate-Api-Key": WEAVIATE_API_KEY,
14
- "X-Weaviate-Cluster-Url": "https://ojk79flbtdqux0f4uua2qa.c0.europe-west3.gcp.weaviate.cloud",
15
  "Content-Type": "application/json"
16
  }
17
 
@@ -30,7 +28,7 @@ def fetch_relevant_docs(user_query):
30
  "query": f"""
31
  {{
32
  Get {{
33
- DigiD_Document_Vectorized(
34
  nearText: {{ concepts: ["{user_query}"] }},
35
  limit: 3
36
  ) {{
@@ -42,29 +40,23 @@ def fetch_relevant_docs(user_query):
42
  }}
43
  """
44
  }
45
-
46
  response = requests.post(WEAVIATE_URL, json=query, headers=HEADERS)
47
-
48
  if response.status_code == 200:
49
  data = response.json()
50
- documents = data.get("data", {}).get("Get", {}).get("DigiD_Document_Vectorized", [])
51
-
52
  if not documents:
53
  print(f"⚠️ Geen documenten gevonden voor de query: {user_query}")
54
  return None
55
-
56
  # Combineer de documentatie in een nette tekst
57
  combined_text = "\n\n".join(
58
  [f"**{doc['title']}**\n{doc['content']}\nBron: {doc['url']}" for doc in documents]
59
  )
60
-
61
  return combined_text
62
-
63
  else:
64
  print(f"❌ Fout bij ophalen documentatie: {response.status_code}, {response.text}")
65
  return None
66
 
67
- # **Functie om antwoord te genereren met Mistral**
68
  def generate_answer(vraag, history=[]):
69
  messages = [{"role": "system", "content": SYSTEM_PROMPT}]
70
 
@@ -75,28 +67,34 @@ def generate_answer(vraag, history=[]):
75
  else:
76
  messages.append({"role": "system", "content": "Er is geen relevante documentatie gevonden. Probeer het opnieuw of neem contact op met Logius."})
77
 
78
- # **Loop door de gespreksgeschiedenis en voeg alleen geldige entries toe**
79
  for turn in history:
80
- if turn[0]:
81
  messages.append({"role": "user", "content": turn[0]})
82
- if turn[1]:
83
  messages.append({"role": "assistant", "content": turn[1]})
84
 
85
  # Voeg de huidige gebruikersvraag toe
86
  messages.append({"role": "user", "content": vraag})
87
 
88
- # **Mistral API instellingen**
89
- MISTRAL_API_URL = "https://api.mistral.ai/v1/chat/completions"
90
- MISTRAL_HEADERS = {
91
- "Authorization": f"Bearer {MISTRAL_API_KEY}",
92
  "Content-Type": "application/json"
93
  }
 
 
 
 
 
 
94
 
95
- # **API-aanroep naar Mistral**
96
  response = requests.post(
97
- MISTRAL_API_URL,
98
- headers=MISTRAL_HEADERS,
99
- json={"model": "mistral-medium", "messages": messages, "max_tokens": 512, "temperature": 0.2}
100
  )
101
 
102
  if response.status_code == 200:
@@ -106,7 +104,6 @@ def generate_answer(vraag, history=[]):
106
  return f"⚠️ Fout bij genereren antwoord: {response.status_code}, {response.text}"
107
 
108
  # **Gradio UI met gespreksgeschiedenis**
109
- demo = gr.ChatInterface(generate_answer, chatbot=gr.Chatbot(), title="DigiD Assistent")
110
-
111
  if __name__ == "__main__":
112
  demo.launch()
 
4
 
5
  # API Keys ophalen uit Hugging Face Secrets
6
  WEAVIATE_API_KEY = os.getenv("WEAVIATE_APIKEY")
7
+ VLAM_API_KEY = os.getenv("VLAM_APIKEY") # Nieuwe variabele voor VLAM.AI
8
 
9
+ # Weaviate-instellingen (update je Weaviate URL en cluster)
10
+ WEAVIATE_URL = "https://k6hr14w1r8gwkdctkxha.c0.europe-west3.gcp.weaviate.cloud/v1/graphql"
11
  HEADERS = {
12
  "Authorization": f"Bearer {WEAVIATE_API_KEY}",
 
 
13
  "Content-Type": "application/json"
14
  }
15
 
 
28
  "query": f"""
29
  {{
30
  Get {{
31
+ DigiDDocument( # Aangepast naar je nieuwe collection
32
  nearText: {{ concepts: ["{user_query}"] }},
33
  limit: 3
34
  ) {{
 
40
  }}
41
  """
42
  }
 
43
  response = requests.post(WEAVIATE_URL, json=query, headers=HEADERS)
 
44
  if response.status_code == 200:
45
  data = response.json()
46
+ documents = data.get("data", {}).get("Get", {}).get("DigiDDocument", [])
 
47
  if not documents:
48
  print(f"⚠️ Geen documenten gevonden voor de query: {user_query}")
49
  return None
 
50
  # Combineer de documentatie in een nette tekst
51
  combined_text = "\n\n".join(
52
  [f"**{doc['title']}**\n{doc['content']}\nBron: {doc['url']}" for doc in documents]
53
  )
 
54
  return combined_text
 
55
  else:
56
  print(f"❌ Fout bij ophalen documentatie: {response.status_code}, {response.text}")
57
  return None
58
 
59
+ # **Functie om antwoord te genereren met VLAM.AI**
60
  def generate_answer(vraag, history=[]):
61
  messages = [{"role": "system", "content": SYSTEM_PROMPT}]
62
 
 
67
  else:
68
  messages.append({"role": "system", "content": "Er is geen relevante documentatie gevonden. Probeer het opnieuw of neem contact op met Logius."})
69
 
70
+ # **Loop door de gespreksgeschiedenis**
71
  for turn in history:
72
+ if turn[0]:
73
  messages.append({"role": "user", "content": turn[0]})
74
+ if turn[1]:
75
  messages.append({"role": "assistant", "content": turn[1]})
76
 
77
  # Voeg de huidige gebruikersvraag toe
78
  messages.append({"role": "user", "content": vraag})
79
 
80
+ # **VLAM.AI API instellingen**
81
+ VLAM_API_URL = "https://api.demo.vlam.ai/v2.1/projects/poc/openai-compatible/v1/chat/completions"
82
+ VLAM_HEADERS = {
83
+ "Authorization": f"Bearer {VLAM_API_KEY}",
84
  "Content-Type": "application/json"
85
  }
86
+ VLAM_DATA = {
87
+ "model": "ubiops-deployment/logius-pc-mistralmedium-flexibel//chat-model", # VLAM.AI model
88
+ "messages": messages,
89
+ "max_tokens": 512,
90
+ "temperature": 0.2
91
+ }
92
 
93
+ # **API-aanroep naar VLAM.AI**
94
  response = requests.post(
95
+ VLAM_API_URL,
96
+ headers=VLAM_HEADERS,
97
+ json=VLAM_DATA
98
  )
99
 
100
  if response.status_code == 200:
 
104
  return f"⚠️ Fout bij genereren antwoord: {response.status_code}, {response.text}"
105
 
106
  # **Gradio UI met gespreksgeschiedenis**
107
+ demo = gr.ChatInterface(generate_answer, chatbot=gr.Chatbot(), title="DigiD Assistent (VLAM.AI)")
 
108
  if __name__ == "__main__":
109
  demo.launch()