¡Hey Coders! En la era moderna de la tecnología, la inteligencia artificial ha tomado un papel protagonista en diversas aplicaciones, desde asistentes virtuales hasta análisis predictivo. Uno de los modelos más avanzados y populares en este ámbito es ChatGPT, desarrollado por OpenAI. ¿Pero qué sucedería si quisiéramos llevar la experiencia de conversación con ChatGPT fuera de las interfaces web convencionales y trasladarla directamente a una terminal o consola? En este tutorial, nos embarcaremos en un viaje donde exploraremos cómo podemos combinar la potencia del lenguaje de programación Python con la API de OpenAI para crear una aplicación de terminal que emule una conversación al estilo ChatGPT. No solo ampliaremos nuestros conocimientos en programación y el manejo de APIs, sino que también descubriremos nuevas formas de interactuar con inteligencias artificiales en entornos más tradicionales. Prepárate para combinar lo clásico con lo moderno y sumérgete en este fascinante proyecto. ¡Comencemos!
Creación de Entorno virtual
source venv/bin/activate
python
Primera Peticion
import openai
openai.api_key = "sk-xyz"
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages = [
{
"role": "user",
"content": "dame una lista de proyectos para crear con python"
}
],
)
print(response)
stream
import openai
openai.api_key = "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"
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages = [
{
"role": "user",
"content": "dame una lista de proyectos para crear con python"
}
],
stream=True
)
for chunk in response:
print(chunk)
limpiando stream
import openai
openai.api_key = "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"
response_iterator = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages = [
{
"role": "user",
"content": "dame una lista de proyectos para crear con python"
}
],
stream=True,
max_tokens=150,
)
collected_messages = []
for chunk in response_iterator:
chunk_message = chunk['choices'][0]['delta'] # extract the message
collected_messages.append(chunk_message) # save the message
full_reply_content = ''.join([m.get('content', '') for m in collected_messages])
print(full_reply_content)
# clear the terminal
print("\033[H\033[J", end="")
# print the time delay and text received
full_reply_content = ''.join([m.get('content', '') for m in collected_messages])
print(f"Full conversation received: {full_reply_content}")
añadiendo promtp
import openai
openai.api_key = ""
chat_history = []
while True:
prompt = input("Enter a prompt: ")
if prompt == "exit":
break
else:
chat_history.append({"role": "user", "content": prompt})
response_iterator = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages = chat_history,
stream=True,
max_tokens=150,
)
collected_messages = []
for chunk in response_iterator:
chunk_message = chunk['choices'][0]['delta'] # extract the message
collected_messages.append(chunk_message) # save the message
full_reply_content = ''.join([m.get('content', '') for m in collected_messages])
print(full_reply_content)
# clear the terminal
print("\033[H\033[J", end="")
chat_history.append({"role": "assistant", "content": full_reply_content})
# print the time delay and text received
full_reply_content = ''.join([m.get('content', '') for m in collected_messages])
print(f"GPT: {full_reply_content}")
mas recursos
https://github.com/openai/openai-python https://stackoverflow.com/questions/517970/how-to-clear-the-interpreter-console https://github.com/openai/openai-cookbook/blob/main/examples/How_to_stream_completions.ipynb