Vous n'êtes pas identifié(e).
oh tiens, un pti script Ruby .. le dernier c'était en 2018 ca date !
donc je me suis inscrit sur open AI, whaou c'est chouette, 18$ de crédit, mais meme en faisant pas mal de requetes, j'ai pas cramé 0.30$ pour l'instant.. donc l'idée, un script un peu modulaire .. un fichier texte en entrée avec une liste de queries, le script va prendre chaque question, lui poser, récup le résultat et le stocker dans un fichier texte pour plus tard..
###########################################
#### écriture du résultat dans un fichier spécifique
def write_file(file_in,q,a)
f = File.open("auto_files/"+file_in.to_s, 'w')
f.puts "#{q}\n\n"
f.puts "#{a}"
f.close
end
###########################################
#### lecture des questions dans un fichier
questions_array = []
f = File.open("questions_file")
while line = f.gets
questions_array << line.strip
end
f.close
###########################################
#### boucle sur le tableau de questions et appel GPT3
how_many = 700
i = 0
questions_array.each do |question|
if File.exists? i.to_s
response = openai_client.completions(prompt: question, max_tokens: how_many)
response = response["choices"].map { |c| c["text"] }
write_file(i,question,response.first.strip)
else
puts "file #{i.to_s} exists"
end
i= i + 1
sleep(10)
end
il faut donc remplir le fichier en entrée au maximum .. et si on veut rajouter des questions, les mettre en fin de fichier .. le script va lire chaque question, si l'index de la question a déjà généré un fichier on passe à la suite ... sinon on demande au chatbot, on chope la réponse et on l'écrit dans un fichier indicé.. on attends quelques secondes et voilà
à priori ya un limitation horaire / journalière .. donc à fixer dans le sleep.. prévoir un break définitif au cas ou le script patine en raison d'un "too many users" un peu imprévisible
j'ai mis arbitrairement 700tokens pour les réponses donc il faut bien découper les questions.. on pourrait d'ailleurs adapter le code en mettant le nombre de tokens désirés en sortie dans le fichier en entrée
["quelle est l'utilité d'un vélo électrique",500],
["ou faire du vélo électrique",300],
["quelles sont les caractéristiques à prendre en compte pour acheter un vélo électrique",1000]
etc etc
maintenant je suis en train de voir ou choper des idées de questions histoire d'accéléré le processus
🔴 Hors ligne
deuxieme mouture .. comme il faut etre assez spécifique avec la bête, j'ai changé de braquet ..
donc je prends une liste de sujets, je fais des questions standards pour chaque sujet, j'agrège le tout dans un fichier libellé du sujet
sujets = ["sujet 1","sujet 2"]
sujets.each do |sujet|
full_text = []
questions_array = [
"write an essai about #{sujet}",
"write an essai about what are #{sujet} difficulties",
"write an essai about what are #{sujet} properties",
"write an essai about what are #{sujet} advantages",
"write an essai about what are #{sujet} disadvantages",
"write an essai about what are #{sujet} uses"]
questions_array.each do |question|
response = openai_client.completions(prompt: question, max_tokens: 500)
text = response["choices"].map { |c| c["text"] }
full_text << text.first.strip
sleep(10)
end
write_file(sujet,full_text.flatten)
end
donc ca devrait générer autant de paragraphes que de questions, sur autant de sujets que dans la liste ..
j'ai fai un test, ca m'a donné 1800 mots pour un sujet.. je pense que c'est la meilleur manière car si on reste sur des questions génériques sans spécifier un sujet , il risque de se répéter pas mal
edit : petite correction du code pour avoir de beaux paragraphes séparés
Dernière modification par conquering_lion (2023-01-28 15:01:49)
🔴 Hors ligne