187 lines
6.3 KiB
Python
187 lines
6.3 KiB
Python
import ast
|
||
|
||
import pymongo
|
||
import zeep
|
||
from pymongo import MongoClient
|
||
import json
|
||
from bson import ObjectId
|
||
import re
|
||
from datetime import datetime
|
||
import prj_common as mycommon
|
||
import secrets
|
||
import inspect
|
||
import sys, os
|
||
import csv
|
||
import pandas as pd
|
||
from pymongo import ReturnDocument
|
||
from math import isnan
|
||
import GlobalVariable as MYSY_GV
|
||
import ela_index_bdd_classes as eibdd
|
||
import email_mgt as email
|
||
|
||
from validate_email import validate_email
|
||
import jinja2
|
||
|
||
from openai import OpenAI
|
||
#openai.api_key = MYSY_GV.OPENAI_KEY
|
||
client = OpenAI(
|
||
# Defaults to os.environ.get("OPENAI_API_KEY")
|
||
api_key=MYSY_GV.OPENAI_KEY,
|
||
)
|
||
|
||
|
||
GPT_MODEL = "gpt-4-1106-preview" #"gpt-3.5-turbo-1106"
|
||
|
||
|
||
def mysy_openai_improve_text(diction):
|
||
try:
|
||
|
||
diction = mycommon.strip_dictionary(diction)
|
||
|
||
"""
|
||
Verification des input acceptés
|
||
"""
|
||
field_list = ['token', 'action', 'text_input' ]
|
||
|
||
incom_keys = diction.keys()
|
||
for val in incom_keys:
|
||
if val not in field_list and val.startswith('my_') is False:
|
||
mycommon.myprint(str(
|
||
inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé")
|
||
return False, " Les informations fournies sont incorrectes"
|
||
|
||
"""
|
||
Verification des champs obligatoires
|
||
"""
|
||
field_list_obligatoire = ['token', 'action', 'text_input', ]
|
||
|
||
for val in field_list_obligatoire:
|
||
if val not in diction:
|
||
mycommon.myprint(
|
||
str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ")
|
||
return False, " Les informations fournies sont incorrectes"
|
||
|
||
token = ""
|
||
if ("token" in diction.keys()):
|
||
if diction['token']:
|
||
token = diction['token']
|
||
|
||
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
|
||
if (local_status is not True):
|
||
return local_status, my_partner
|
||
|
||
normalised_text = str(diction['text_input']).replace('"', "'")
|
||
|
||
requestion_response = {}
|
||
requestion_response['question'] = "Améliorer le texte : '" +str(normalised_text)+"' "
|
||
|
||
#while (1):
|
||
# a=1
|
||
|
||
|
||
|
||
#prompt = f"Améliorer : 'Notre objectif est également de développer des solutions de proximité qui permettront à chacun de nos clients d’être unique, de se distinguer. Cette approche personnalisée leur permettra de disposer d’une solution adaptée à leur besoin.'"
|
||
|
||
messages = [{"role": "user", "content": requestion_response['question']}]
|
||
response = client.chat.completions.create(
|
||
model=GPT_MODEL,
|
||
messages=messages,
|
||
temperature=0
|
||
)
|
||
response_message = response.choices[0].message.content
|
||
requestion_response['reponse'] = str(response.choices[0].message.content)
|
||
requestion_response['refusal_status'] = str(response.choices[0].message.refusal)
|
||
|
||
|
||
"""
|
||
requestion_response['reponse'] = "reponseeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee"
|
||
requestion_response['refusal_status'] = "None"
|
||
"""
|
||
|
||
RetObject = []
|
||
RetObject.append(mycommon.JSONEncoder().encode(requestion_response))
|
||
|
||
|
||
#print(requestion_response)
|
||
|
||
|
||
return True, RetObject
|
||
|
||
except Exception as e:
|
||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||
return False, " Impossible d'exécuter la fonction : 'mysy_openai_improve_text' "
|
||
|
||
|
||
|
||
|
||
def mysy_openai_summarize_text(diction):
|
||
try:
|
||
|
||
diction = mycommon.strip_dictionary(diction)
|
||
|
||
"""
|
||
Verification des input acceptés
|
||
"""
|
||
field_list = ['token', 'action', 'text_input' ]
|
||
|
||
incom_keys = diction.keys()
|
||
for val in incom_keys:
|
||
if val not in field_list and val.startswith('my_') is False:
|
||
mycommon.myprint(str(
|
||
inspect.stack()[0][3]) + " Le champ '" + val + "' n'est pas autorisé")
|
||
return False, " Les informations fournies sont incorrectes"
|
||
|
||
"""
|
||
Verification des champs obligatoires
|
||
"""
|
||
field_list_obligatoire = ['token', 'action', 'text_input', ]
|
||
|
||
for val in field_list_obligatoire:
|
||
if val not in diction:
|
||
mycommon.myprint(
|
||
str(inspect.stack()[0][3]) + " - La valeur '" + val + "' n'est pas presente dans la liste des arguments ")
|
||
return False, " Les informations fournies sont incorrectes"
|
||
|
||
token = ""
|
||
if ("token" in diction.keys()):
|
||
if diction['token']:
|
||
token = diction['token']
|
||
|
||
local_status, my_partner = mycommon.Check_Connexion_And_Return_Partner_Data(diction)
|
||
if (local_status is not True):
|
||
return local_status, my_partner
|
||
|
||
normalised_text = str(diction['text_input']).replace('"', "'")
|
||
|
||
requestion_response = {}
|
||
requestion_response['question'] = "Résumer le texte : '" +str(normalised_text)+"' "
|
||
|
||
#prompt = f"Améliorer : 'Notre objectif est également de développer des solutions de proximité qui permettront à chacun de nos clients d’être unique, de se distinguer. Cette approche personnalisée leur permettra de disposer d’une solution adaptée à leur besoin.'"
|
||
|
||
messages = [{"role": "user", "content": requestion_response['question']}]
|
||
response = client.chat.completions.create(
|
||
model=GPT_MODEL,
|
||
messages=messages,
|
||
temperature=0
|
||
)
|
||
response_message = response.choices[0].message.content
|
||
requestion_response['reponse'] = str(response.choices[0].message.content)
|
||
requestion_response['refusal_status'] = str(response.choices[0].message.refusal)
|
||
|
||
RetObject = []
|
||
RetObject.append(mycommon.JSONEncoder().encode(requestion_response))
|
||
|
||
|
||
print(requestion_response)
|
||
|
||
|
||
return True, RetObject
|
||
|
||
except Exception as e:
|
||
exc_type, exc_obj, exc_tb = sys.exc_info()
|
||
mycommon.myprint(str(inspect.stack()[0][3]) + " -" + str(e) + " - ERRORRRR AT Line : " + str(exc_tb.tb_lineno))
|
||
return False, " Impossible d'exécuter la fonction : 'mysy_openai_improve_text' "
|
||
|
||
|