brestok commited on
Commit
5768ce5
·
1 Parent(s): a3687b2

update language

Browse files
trauma/api/message/ai/engine.py CHANGED
@@ -12,7 +12,8 @@ from trauma.api.message.db_requests import (save_assistant_user_message,
12
  from trauma.api.message.schemas import CreateMessageResponse
13
  from trauma.api.message.utils import (retrieve_empty_field_from_entity_data,
14
  prepare_user_messages_str,
15
- prepare_final_entities_str, pick_empty_field_instructions)
 
16
 
17
 
18
  async def search_entities(
 
12
  from trauma.api.message.schemas import CreateMessageResponse
13
  from trauma.api.message.utils import (retrieve_empty_field_from_entity_data,
14
  prepare_user_messages_str,
15
+ prepare_final_entities_str,
16
+ pick_empty_field_instructions)
17
 
18
 
19
  async def search_entities(
trauma/api/message/ai/prompts.py CHANGED
@@ -1,30 +1,30 @@
1
  class TraumaPrompts:
2
- update_entity_data_with_ai = """## Task
3
 
4
- You must update the current `Entity data` dictionary with new information based on the user's response to the assistant's question.
5
 
6
  ## Context
7
 
8
- You are collecting information about a patient, their illness, and the treatment method so that the system can later recommend the most suitable clinic.
9
 
10
- ## Data
11
 
12
  **Entity data**:
13
  ```
14
  {entity_data}
15
  ```
16
 
17
- **Assistant question**:
18
  ```
19
  {assistant_message}
20
  ```
21
 
22
- **User answer**:
23
  ```
24
  {user_message}
25
  ```
26
 
27
- ## JSON Response format
28
 
29
  ```json
30
  {
@@ -35,73 +35,77 @@ You are collecting information about a patient, their illness, and the treatment
35
  }
36
  ```
37
 
38
- - **[ageMin]**: Minimum age of the patient. If the user specifies a single age rather than a range, [ageMin] must equal [ageMax] and be the specified age.
39
- - **[ageMax]**: Maximum age of the patient.
40
- - **[treatmentArea]**: The type of mental or physical illness/disorder.
41
- - **[treatmentMethod]**: A method of treating the illness or disorder.
42
 
43
- ## Rules for Updating Entity Data
44
 
45
- - You must add, update, or remove data in the dictionary based on the user's response to the assistant's question.
46
- - If the user does not mention a specific field from the dictionary, retain the current value.
47
- - Update only the fields explicitly mentioned by the user."""
48
- generate_next_question = """## Task
49
 
50
- You must generate a concise and straightforward question for the chat user regarding a specific field [Missed field].
51
 
52
  ## Context
53
 
54
- You are a conversational assistant collecting information from a nurse about a patient. This information will later be used by the system to recommend a suitable clinic. To achieve this, you need to ask questions about specific characteristics, particularly about the [Missed field].
55
 
56
- ## Data
57
 
58
- **Missed field**:
59
  ```
60
  {empty_field}
61
  ```
62
 
63
  - {instructions}
64
 
65
- ## Important Note
66
 
67
- - The generated question must be brief and to the point."""
68
- generate_search_request = """## Task
69
 
70
- You must generate a concise search query based on the user's messages [message history] and the collected patient information [patient data].
71
 
72
- ## Data
73
 
74
- **patient data**:
75
  ```json
76
  {entity_data}
77
  ```
78
 
79
- **message history**:
80
  ```
81
  {user_messages_str}
82
  ```
83
 
84
  [INST]
85
 
86
- ## Important Notes
87
 
88
- - The search query must reference all data from [patient data] as well as key, essential information from [message history].
89
- - Your response must be brief, concise, and clear.
90
 
91
  [/INST]"""
92
- generate_recommendation_decision = """## Task
93
 
94
- You must generate a response to the user stating that you have found suitable clinics for the patient and explain why these clinics are a perfect match for their needs.
95
 
96
- ## Data
97
 
98
- **suitable clinics**:
99
  ```
100
  {final_entities}
101
  ```
102
 
103
- ## Important Notes
104
 
105
- - Your response must begin with a congratulatory statement about finding suitable clinics and then explain why these clinics are ideal for the patient.
106
- - While generating the response, consider the user's message history and the information about the identified clinics.
107
- - Your response must be concise, clear, and creative."""
 
 
 
 
 
1
  class TraumaPrompts:
2
+ update_entity_data_with_ai = """## Taak
3
 
4
+ Je moet de huidige `Entity data` woordenboek bijwerken met nieuwe informatie op basis van het antwoord van de gebruiker op de vraag van de assistent.
5
 
6
  ## Context
7
 
8
+ Je verzamelt informatie over een patiënt, hun ziekte en de behandelmethode zodat het systeem later de meest geschikte kliniek kan aanbevelen.
9
 
10
+ ## Gegevens
11
 
12
  **Entity data**:
13
  ```
14
  {entity_data}
15
  ```
16
 
17
+ **Vraag van de assistent**:
18
  ```
19
  {assistant_message}
20
  ```
21
 
22
+ **Antwoord van de gebruiker**:
23
  ```
24
  {user_message}
25
  ```
26
 
27
+ ## JSON-reactieformaat
28
 
29
  ```json
30
  {
 
35
  }
36
  ```
37
 
38
+ - **[ageMin]**: Minimale leeftijd van de patiënt. Als de gebruiker een enkele leeftijd opgeeft in plaats van een bereik, moet [ageMin] gelijk zijn aan [ageMax] en de opgegeven leeftijd zijn.
39
+ - **[ageMax]**: Maximale leeftijd van de patiënt.
40
+ - **[treatmentArea]**: Het type mentale of fysieke ziekte/stoornis.
41
+ - **[treatmentMethod]**: Een methode voor het behandelen van de ziekte of stoornis.
42
 
43
+ ## Regels voor het bijwerken van Entity Data
44
 
45
+ - Je moet gegevens toevoegen, bijwerken of verwijderen in het woordenboek op basis van het antwoord van de gebruiker op de vraag van de assistent.
46
+ - Als de gebruiker geen specifiek veld uit het woordenboek vermeldt, behoud dan de huidige waarde.
47
+ - Werk alleen de velden bij die expliciet door de gebruiker zijn genoemd."""
48
+ generate_next_question = """## Taak
49
 
50
+ Je moet een korte en duidelijke vraag genereren voor de chatgebruiker over een specifiek veld [Gemist veld].
51
 
52
  ## Context
53
 
54
+ Je bent een gespreksassistent die informatie verzamelt van een verpleegkundige over een patiënt. Deze informatie zal later door het systeem worden gebruikt om een geschikte kliniek aan te bevelen. Om dit te bereiken, moet je vragen stellen over specifieke kenmerken, met name over het [Gemist veld].
55
 
56
+ ## Gegevens
57
 
58
+ **Gemist veld**:
59
  ```
60
  {empty_field}
61
  ```
62
 
63
  - {instructions}
64
 
65
+ ## Belangrijke Opmerking
66
 
67
+ - De gegenereerde vraag moet kort en to the point zijn."""
68
+ generate_search_request = """## Taak
69
 
70
+ Je moet een beknopte zoekopdracht genereren op basis van de berichten van de gebruiker [berichtgeschiedenis] en de verzamelde patiëntgegevens [patiëntgegevens].
71
 
72
+ ## Gegevens
73
 
74
+ **patiëntgegevens**:
75
  ```json
76
  {entity_data}
77
  ```
78
 
79
+ **berichtgeschiedenis**:
80
  ```
81
  {user_messages_str}
82
  ```
83
 
84
  [INST]
85
 
86
+ ## Belangrijke opmerkingen
87
 
88
+ - De zoekopdracht moet alle gegevens uit [patiëntgegevens] vermelden, evenals belangrijke, essentiële informatie uit [berichtgeschiedenis].
89
+ - Je antwoord moet kort, bondig en duidelijk zijn.
90
 
91
  [/INST]"""
92
+ generate_recommendation_decision = """## Taak
93
 
94
+ Je moet een antwoord genereren aan de gebruiker waarin je aangeeft dat je geschikte klinieken voor de patiënt hebt gevonden en uitleggen waarom deze klinieken perfect aansluiten bij hun behoeften.
95
 
96
+ ## Gegevens
97
 
98
+ **geschikte klinieken**:
99
  ```
100
  {final_entities}
101
  ```
102
 
103
+ ## Belangrijke Notities
104
 
105
+ - Je antwoord moet beginnen met een felicitatieve verklaring over het vinden van geschikte klinieken en vervolgens uitleggen waarom deze klinieken ideaal zijn voor de patiënt in 1-2 zinnen.
106
+ - Houd bij het genereren van het antwoord rekening met de berichtgeschiedenis van de gebruiker en de informatie over de geïdentificeerde klinieken.
107
+ - Je antwoord moet beknopt, duidelijk en creatief zijn.
108
+
109
+ ## Voorbeeld van antwoorden
110
+
111
+ - Gefeliciteerd! Hier is een lijst van klinieken die perfect passen bij deze aandoening. Ik heb deze klinieken aanbevolen omdat ze voldoen aan de gevraagde leeftijdsbeperkingen en gespecialiseerd zijn in de behandeling van deze aandoening met behulp van dergelijke methoden."""
trauma/api/message/utils.py CHANGED
@@ -36,14 +36,15 @@ def prepare_final_entities_str(entities: list[EntityModel]) -> str:
36
  entities_list = []
37
  for entity in entities:
38
  entities_list.append(entity.model_dump(mode='json', exclude={'id', 'contactDetails'}))
39
- return json.dumps({"entities": entities_list})
 
40
 
41
  def pick_empty_field_instructions(empty_field: str) -> str:
42
  if empty_field == "ageMin":
43
- return "Minimum age of the patient."
44
  elif empty_field == "ageMax":
45
- return "Maximum age of the patient."
46
  elif empty_field == "treatmentArea":
47
- return "The type of mental or physical illness/disorder."
48
  elif empty_field == "treatmentMethod":
49
- return "A method of treating the illness or disorder."
 
36
  entities_list = []
37
  for entity in entities:
38
  entities_list.append(entity.model_dump(mode='json', exclude={'id', 'contactDetails'}))
39
+ return json.dumps({"klinieken": entities_list})
40
+
41
 
42
  def pick_empty_field_instructions(empty_field: str) -> str:
43
  if empty_field == "ageMin":
44
+ return "Minimumleeftijd van de patiënt."
45
  elif empty_field == "ageMax":
46
+ return "Maximale leeftijd van de patiënt."
47
  elif empty_field == "treatmentArea":
48
+ return "Het type psychische of lichamelijke ziekte / stoornis."
49
  elif empty_field == "treatmentMethod":
50
+ return "Een methode om de ziekte of stoornis te behandelen."