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' "