aymanemalih commited on
Commit
2769911
·
1 Parent(s): 7558844

Update gpt.py

Browse files
Files changed (1) hide show
  1. gpt.py +112 -11
gpt.py CHANGED
@@ -1,21 +1,121 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
  import openai
2
  import json
3
 
4
- openai.api_key = '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'
5
-
6
  model = "gpt-3.5-turbo"
7
 
8
 
9
  def get_keywords(question):
10
- prompt = f"""je souhaite trouver la réponse à la question suivante à partir d'un fichier PDF en français. Veuillez me fournir 10 mots-clés et synonymes que je peux utiliser pour trouver les informations du PDF. Un seul mot par mot-clé. Utilisez uniquement des lettres minuscules.
11
  {question}"""
12
 
13
- response = openai.chat.completions.create(
 
14
  model=model,
15
  messages=[
16
  {
17
  "role": "system",
18
- "content": "Vous fournirez toujours des mots-clés incluant les synonymes des mots de la question d'origine. Les synonymes doivent être des termes juridiques couramment utilisés dans les articles de loi canadienne", },
19
  {
20
  "role": "user",
21
  "content": prompt,
@@ -41,9 +141,10 @@ def get_keywords(question):
41
  function_call={"name": "list_keywords", "arguments": ["list"]},
42
  )
43
 
44
- arguments = response.choices[0].message.function_call.arguments.lower()
45
- print(arguments)
46
- return " ".join(arguments).split(" ")
 
47
 
48
 
49
  def answer_question(chunk, question):
@@ -57,7 +158,7 @@ Sur la base des informations ci-dessus, quelle est la réponse à cette question
57
  {question}
58
  ```"""
59
 
60
- response = openai.chat.completions.create(
61
  model=model,
62
  messages=[
63
  {
@@ -92,8 +193,8 @@ Sur la base des informations ci-dessus, quelle est la réponse à cette question
92
  )
93
 
94
  try:
95
- function_call = response.choices[0].message.function_call
96
- arguments = function_call.arguments.lower()
97
  result = json.loads(arguments)
98
  return result
99
  except KeyError:
 
1
+ # import openai
2
+ # import json
3
+
4
+ # openai.api_key = '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'
5
+
6
+ # model = "gpt-3.5-turbo"
7
+
8
+
9
+ # def get_keywords(question):
10
+ # prompt = f"""je souhaite trouver la réponse à la question suivante à partir d'un fichier PDF en français. Veuillez me fournir 10 mots-clés et synonymes que je peux utiliser pour trouver les informations du PDF. Un seul mot par mot-clé. Utilisez uniquement des lettres minuscules.
11
+ # {question}"""
12
+
13
+ # response = openai.chat.completions.create(
14
+ # model=model,
15
+ # messages=[
16
+ # {
17
+ # "role": "system",
18
+ # "content": "Vous fournirez toujours des mots-clés incluant les synonymes des mots de la question d'origine. Les synonymes doivent être des termes juridiques couramment utilisés dans les articles de loi canadienne", },
19
+ # {
20
+ # "role": "user",
21
+ # "content": prompt,
22
+ # },
23
+ # ],
24
+ # functions=[
25
+ # {
26
+ # "name": "list_keywords",
27
+ # "description": "Utilisez cette fonction pour donner à l'utilisateur une liste de mots-clés",
28
+ # "parameters": {
29
+ # "type": "object",
30
+ # "properties": {
31
+ # "list": {
32
+ # "type": "array",
33
+ # "items": {"type": "string", "description": "A keyword"},
34
+ # "description": "A list of keywords",
35
+ # }
36
+ # },
37
+ # },
38
+ # "required": ["list"],
39
+ # }
40
+ # ],
41
+ # function_call={"name": "list_keywords", "arguments": ["list"]},
42
+ # )
43
+
44
+ # arguments = response.choices[0].message.function_call.arguments.lower()
45
+ # print(arguments)
46
+ # return " ".join(arguments).split(" ")
47
+
48
+
49
+ # def answer_question(chunk, question):
50
+ # prompt = f"""```
51
+ # {chunk}
52
+ # ```
53
+
54
+ # Sur la base des informations ci-dessus, quelle est la réponse à cette question?
55
+
56
+ # ```
57
+ # {question}
58
+ # ```"""
59
+
60
+ # response = openai.chat.completions.create(
61
+ # model=model,
62
+ # messages=[
63
+ # {
64
+ # "role": "system",
65
+ # "content": "Définissez toujours answer_found sur false si la réponse à la question n'a pas été trouvée dans les informations fournies.",
66
+ # },
67
+ # {
68
+ # "role": "user",
69
+ # "content": prompt,
70
+ # },
71
+ # ],
72
+ # functions=[
73
+ # {
74
+ # "name": "give_response",
75
+ # "description": "Utilisez cette fonction pour donner la réponse et si la réponse à la question a été trouvée ou non dans le texte.",
76
+ # "parameters": {
77
+ # "type": "object",
78
+ # "properties": {
79
+ # "answer_found": {
80
+ # "type": "boolean",
81
+ # "description": "Définissez ceci sur true uniquement si le texte fourni inclut une réponse à la question",
82
+ # },
83
+ # "response": {
84
+ # "type": "string",
85
+ # "description": "La réponse complète à la question, si l'information était pertinente",
86
+ # },
87
+ # },
88
+ # },
89
+ # "required": ["answer_found"],
90
+ # }
91
+ # ],
92
+ # )
93
+
94
+ # try:
95
+ # function_call = response.choices[0].message.function_call
96
+ # arguments = function_call.arguments.lower()
97
+ # result = json.loads(arguments)
98
+ # return result
99
+ # except KeyError:
100
+ # return {"answer_found": False, "response": ""}
101
+
102
  import openai
103
  import json
104
 
 
 
105
  model = "gpt-3.5-turbo"
106
 
107
 
108
  def get_keywords(question):
109
+ prompt = f""" Je souhaite trouver la réponse à la question suivante dans une colonne d'un fichier csv. Veuillez me fournir 10 mots-clés et synonymes que je peux utiliser pour trouver les informations du csv. Un seul mot par mot-clé. Utilisez uniquement des lettres minuscules.
110
  {question}"""
111
 
112
+
113
+ response = openai.ChatCompletion.create(
114
  model=model,
115
  messages=[
116
  {
117
  "role": "system",
118
+ "content": "Vous fournirez toujours 10 mots-clés incluant des synonymes pertinents et explicit des mots de la question dorigine. Les synonymes doivent être des termes juridiques couramment utilisés dans les articles de loi canadienne", },
119
  {
120
  "role": "user",
121
  "content": prompt,
 
141
  function_call={"name": "list_keywords", "arguments": ["list"]},
142
  )
143
 
144
+ arguments = response["choices"][0]["message"]["function_call"]["arguments"].lower()
145
+ keywords = json.loads(arguments)["list"]
146
+
147
+ return " ".join(keywords).split(" ")
148
 
149
 
150
  def answer_question(chunk, question):
 
158
  {question}
159
  ```"""
160
 
161
+ response = openai.ChatCompletion.create(
162
  model=model,
163
  messages=[
164
  {
 
193
  )
194
 
195
  try:
196
+ function_call = response["choices"][0]["message"]["function_call"]
197
+ arguments = function_call["arguments"].lower()
198
  result = json.loads(arguments)
199
  return result
200
  except KeyError: