Spaces:
Runtime error
Runtime error
# import openai | |
# import json | |
# openai.api_key = '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' | |
# model = "gpt-3.5-turbo" | |
# def get_keywords(question): | |
# 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. | |
# {question}""" | |
# response = openai.chat.completions.create( | |
# model=model, | |
# messages=[ | |
# { | |
# "role": "system", | |
# "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", }, | |
# { | |
# "role": "user", | |
# "content": prompt, | |
# }, | |
# ], | |
# functions=[ | |
# { | |
# "name": "list_keywords", | |
# "description": "Utilisez cette fonction pour donner à l'utilisateur une liste de mots-clés", | |
# "parameters": { | |
# "type": "object", | |
# "properties": { | |
# "list": { | |
# "type": "array", | |
# "items": {"type": "string", "description": "A keyword"}, | |
# "description": "A list of keywords", | |
# } | |
# }, | |
# }, | |
# "required": ["list"], | |
# } | |
# ], | |
# function_call={"name": "list_keywords", "arguments": ["list"]}, | |
# ) | |
# arguments = response.choices[0].message.function_call.arguments.lower() | |
# print(arguments) | |
# return " ".join(arguments).split(" ") | |
# def answer_question(chunk, question): | |
# prompt = f"""``` | |
# {chunk} | |
# ``` | |
# Sur la base des informations ci-dessus, quelle est la réponse à cette question? | |
# ``` | |
# {question} | |
# ```""" | |
# response = openai.chat.completions.create( | |
# model=model, | |
# messages=[ | |
# { | |
# "role": "system", | |
# "content": "Définissez toujours answer_found sur false si la réponse à la question n'a pas été trouvée dans les informations fournies.", | |
# }, | |
# { | |
# "role": "user", | |
# "content": prompt, | |
# }, | |
# ], | |
# functions=[ | |
# { | |
# "name": "give_response", | |
# "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.", | |
# "parameters": { | |
# "type": "object", | |
# "properties": { | |
# "answer_found": { | |
# "type": "boolean", | |
# "description": "Définissez ceci sur true uniquement si le texte fourni inclut une réponse à la question", | |
# }, | |
# "response": { | |
# "type": "string", | |
# "description": "La réponse complète à la question, si l'information était pertinente", | |
# }, | |
# }, | |
# }, | |
# "required": ["answer_found"], | |
# } | |
# ], | |
# ) | |
# try: | |
# function_call = response.choices[0].message.function_call | |
# arguments = function_call.arguments.lower() | |
# result = json.loads(arguments) | |
# return result | |
# except KeyError: | |
# return {"answer_found": False, "response": ""} | |
import openai | |
import json | |
model = "gpt-3.5-turbo" | |
openai.api_key = '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' | |
def get_keywords(question): | |
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. | |
{question}""" | |
response = openai.chat.completions.create( | |
model=model, | |
messages=[ | |
{ | |
"role": "system", | |
"content": "Vous fournirez toujours 10 mots-clés incluant des synonymes pertinents et explicit des mots de la question d’origine. Les synonymes doivent être des termes juridiques couramment utilisés dans les articles de loi canadienne", }, | |
{ | |
"role": "user", | |
"content": prompt, | |
}, | |
], | |
functions=[ | |
{ | |
"name": "list_keywords", | |
"description": "Utilisez cette fonction pour donner à l'utilisateur une liste de mots-clés", | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"list": { | |
"type": "array", | |
"items": {"type": "string", "description": "A keyword"}, | |
"description": "A list of keywords", | |
} | |
}, | |
}, | |
"required": ["list"], | |
} | |
], | |
function_call={"name": "list_keywords", "arguments": ["list"]}, | |
) | |
arguments = response.choices[0].message.function_call.arguments.lower() | |
keywords = json.loads(arguments)["list"] | |
return " ".join(keywords).split(" ") | |
def answer_question(chunk, question): | |
prompt = f"""``` | |
{chunk} | |
``` | |
Sur la base des informations ci-dessus, quelle est la réponse à cette question? | |
``` | |
{question} | |
```""" | |
response = openai.chat.completions.create( | |
model=model, | |
messages=[ | |
{ | |
"role": "system", | |
"content": "Définissez toujours answer_found sur false si la réponse à la question n'a pas été trouvée dans les informations fournies.", | |
}, | |
{ | |
"role": "user", | |
"content": prompt, | |
}, | |
], | |
functions=[ | |
{ | |
"name": "give_response", | |
"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.", | |
"parameters": { | |
"type": "object", | |
"properties": { | |
"answer_found": { | |
"type": "boolean", | |
"description": "Définissez ceci sur true uniquement si le texte fourni inclut une réponse à la question", | |
}, | |
"response": { | |
"type": "string", | |
"description": "La réponse complète à la question, si l'information était pertinente", | |
}, | |
}, | |
}, | |
"required": ["answer_found"], | |
} | |
], | |
function_call={"name": "give_response", "arguments": ["answer_found"]}, | |
) | |
try: | |
function_call = response.choices[0].message.function_call | |
arguments = function_call.arguments.lower() | |
result = json.loads(arguments) | |
return result | |
except KeyError: | |
return {"answer_found": False, "response": ""} | |