Le client OpenAI sert d’interface pour interagir avec les services et les API d’OpenAI. Pour initialiser le client OpenAI, nous devons transmettre la clé API. Il existe de nombreuses façons de procéder. Pour ce faire, vous devrez importer les bibliothèques.
import openai #OpenAI python library from openai import OpenAI #OpenAI Client
Installez le dotenv bibliothèque
La bibliothèque dotenv est un outil populaire utilisé dans divers langages de programmation, notamment Python et Node.js, pour gérer les variables d’environnement dans les environnements de développement et de déploiement. Il permet aux développeurs de charger des variables d’environnement à partir d’un fichier .env dans l’environnement de leur application.
pip install python-dotenv
Créez ensuite un fichier nommé .env dans le répertoire racine de leur projet. Dans le fichier .env, définissez ensuite les variables d’environnement au format VARIABLE_NAME=value. par exemple OPENAI_API_KEY=VOTRE CLÉ API
load_dotenv()
openai_api_key=os.getenv(« OPENAI_API_KEY »)
La variable ‘openai_api_key’ stocke désormais votre clé API
openai_api_key="<YOUR KEY HERE>"
Vous pouvez également visiter
Recommandation : Un excellent parcours »
Note : Il est recommandé de configurer l’un ou l’autre de « température » et « top_p », mais pas les deux.
Créons une fonction pour effectuer les appels API.
response = client.chat.completions.create(
model=model,
messages=[
{« role »: « user », « content »: prompt}
],
max_tokens=max_tokens,
temperature=temperature,
presence_penalty=presence_penalty,
n=n
)
if len(response.choices)>1:
output= »
for i in range(0,len(response.choices)):
output+=’\n\n– n = ‘+str(i+1)+’ ——\n\n’+
str(response.choices[i].message.content)
else:
output=response.choices[0].message.content
return output
Tout d’abord, appelons la fonction avec n=2 et une température élevée
print(gpt_call(prompt="Write a title for a workshop on / openai API",n=2,temperature=1))
Vous obtiendrez deux réponses car « n » est défini sur 2
« Unlocking the Power of AI: A Deep Dive into OpenAI’s API »
— n = 2 ——
« Unlocking the Power of OpenAI: A Workshop on Leveraging the OpenAI
API for Innovation and Insight »
Maintenant, changeons la température à 0 (un résultat plus déterministe)
print(gpt_call(prompt="Write a title for a workshop / on openai API",n=3,temperature=0))
Vous remarquerez que la réponse pour les trois options est la même.
« Unlocking the Power of AI: A Deep Dive into OpenAI’s API »
— n = 2 ——
« Unlocking the Power of AI: A Deep Dive into OpenAI’s API »
— n = 3 ——
« Unlocking the Power of AI: A Deep Dive into OpenAI’s API »
C’est parce que le
Parfois, lorsque le modèle est censé générer un texte volumineux comme un e-mail, une histoire ou un blog, etc., cela prend beaucoup de temps. Cela peut conduire à une mauvaise expérience utilisateur. Pour résoudre ce problème, l’API OpenAI offre la possibilité de renvoyer les réponses à un client afin d’autoriser des résultats partiels pour certaines requêtes. Cela se fait en définissant le paramètre « stream » sur True.
response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant knowledgeable in the field of Cricket."}, {"role": "user", "content": "When did Australia win their first Cricket World Cup?"}, {"role": "assistant", "content": "Australia won their first Cricket World Cup in the year 1987. They defeated England in the final to clinch their maiden title in the tournament."}, {"role": "user", "content": "How much did they score?"} ], stream=True ###Streaming is set to true here. )
La réponse est reçue sous forme de morceaux qui peuvent être imprimés au fur et à mesure de leur arrivée.
for chunk in stream: if chunk.choices[0].delta.content is not None: print(chunk.choices[0].delta.content, end="")
Parfois, les réponses sont nécessaires dans un format défini pour que nous puissions en extraire les sections pertinentes. JSON devient un format très pratique et les LLM ont la possibilité de renvoyer du texte au format JSON. Dans les versions précédentes de la série de modèles GPT, parfois le JSON renvoyé n’était pas valide. Par conséquent, OpenAI a récemment publié cette fonctionnalité. Pour en bénéficier, le «format_réponse » Le paramètre est utilisé.
prompt="generate the entire text for a blog on a cricket match. \"Title\" is a catchy and attractive title of the blog. The \"Heading\" is the heading for each point in the blog and the \"Body\" is the text for that heading.Output in a json structure"
print((response.choices[0].message.content))
La réponse peut désormais être attendue dans un format JSON valide.
{ "Title": "Thrilling Victory: A Nail-biting Finish in the Cricket Match", "Heading": [ { "Heading": "Introduction", "Body": "The cricket match between Team A and Team B had fans on the edge of their seats as both teams fought tooth and nail for victory. The match was filled with twists and turns, keeping the spectators entertained till the last ball." }, { "Heading": "Team A's Dominant Start", "Body": "Team A got off to a flying start with their opening batsmen scoring quick runs and building a solid foundation for the team. Their middle-order batsmen continued the momentum, and Team A set a formidable total for Team B to chase." }, { "Heading": "Team B's Counterattack", "Body": "Despite the daunting target set by Team A, Team B's batsmen showed great determination and skill as they went about their chase. They played aggressive cricket, hitting boundaries and rotating the strike to keep the scoreboard ticking." }, { "Heading": "The Rollercoaster Middle Overs", "Body": "The middle overs of the match were filled with drama as both teams fought fiercely for control. Team A's bowlers made crucial breakthroughs, but Team B's batsmen didn't back down, staging counterattacks and keeping the match finely balanced." }, { "Heading": "The Final Overs Drama", "Body": "As the match entered its final overs, the tension was palpable in the air. Team B needed a few runs to win, but Team A's bowlers didn't make it easy for them. It all came down to the last ball, with the match hanging in the balance." }, { "Heading": "The Last Ball Finish", "Body": "In a nail-biting finish, Team B managed to score the required runs off the last ball, clinching a thrilling victory against Team A. The players and fans erupted in joy as Team B celebrated their hard-fought win." }, { "Heading": "Conclusion", "Body": "The cricket match between Team A and Team B was a test of skill, determination, and nerve. Both teams showcased their fighting spirit and never-say-die attitude, making it a memorable match for everyone involved." } ] }
Cela devient très pratique lors de la création d’applications. Il y a quelques points à noter ici –
Avant de conclure, un mot sur les jetons s’impose. Les jetons sont les unités fondamentales de
J’écris sur l’#IA #MachineLearning #DataScience #GenerativeAI #Analytics #LLMs #Technology #RAG.
Si cet espace vous intéresse, veuillez lire mes e-books.
abhinavkimothi.gumroad.com
abhinavkimothi.gumroad.com
abhinavkimothi.gumroad.com
Publié via Vers l’IA