138 lines
4.1 KiB
Python
138 lines
4.1 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(diction):
|
||
try:
|
||
|
||
requestion_response = {}
|
||
requestion_response['question'] = "Ecris moi une conclusion d'un article qui parle de l'utilisation de l'API ChatGPT"
|
||
|
||
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": prompt}]
|
||
response = client.chat.completions.create(
|
||
model=GPT_MODEL,
|
||
messages=messages,
|
||
temperature=0
|
||
)
|
||
response_message = response.choices[0].message.content
|
||
|
||
#json_formatted_str = json.dumps(response, indent=2)
|
||
|
||
refusal_status = response.choices[0].message.refusal
|
||
|
||
print(" #refusal_status = ", refusal_status)
|
||
|
||
|
||
print(" ### AFFICHAGE GPT RESPONSE ")
|
||
print(response.choices[0])
|
||
|
||
|
||
|
||
print(response_message)
|
||
|
||
requestion_response['reponse'] = str(response.choices[0].message.content)
|
||
|
||
"""
|
||
prompt = f"Ecris moi une conclusion d'un article qui parle de l'utilisation de l'API ChatGPT"
|
||
completion = client.chat.completions.create(
|
||
model="gpt-3.5-turbo",
|
||
messages=[{"role": "user", "content": prompt}]
|
||
)
|
||
|
||
print(completion['choices'][0]['message']['content'])
|
||
"""
|
||
|
||
|
||
|
||
return True,requestion_response
|
||
|
||
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 de traiter : mysy_openai"
|
||
|
||
|
||
"""
|
||
Test openai voice to text mysy
|
||
"""
|
||
def mysy_openai_voice_to_text(diction):
|
||
try:
|
||
print(" ### diction = ", diction)
|
||
file_name = "temp_direct/mysy_test_voice_mp3.mp3"
|
||
if( "voice_file" in diction.keys() and diction['voice_file'] ):
|
||
file_name = diction['voice_file']
|
||
|
||
print(" ### Traitement du fichier audio : ", file_name)
|
||
|
||
audio_file = open(file_name, "rb")
|
||
transcription = client.audio.transcriptions.create(
|
||
model="whisper-1",
|
||
file=audio_file,
|
||
#response_format = "text"
|
||
)
|
||
|
||
requestion_response = transcription.text
|
||
print(" ### AFFICHAGE GPT RESPONSE - mysy_openai_voice_to_text")
|
||
print(transcription.text)
|
||
|
||
return True,requestion_response
|
||
|
||
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 de traiter : mysy_openai_voice_to_text"
|
||
|
||
|
||
def mysy_openai_assistant(diction):
|
||
try:
|
||
|
||
requestion_response = {}
|
||
my_assistant = client.beta.assistants.create(
|
||
instructions="You are a personal math tutor. When asked a question, write and run Python code to answer the question.",
|
||
name="Math Tutor",
|
||
tools=[{"type": "code_interpreter"}],
|
||
model="gpt-4o",
|
||
)
|
||
print(my_assistant)
|
||
|
||
|
||
return True, my_assistant
|
||
|
||
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 de traiter : mysy_openai_assistant"
|
||
|
||
|