Descripción de proyecto

Biblioteca Python de OpenAI

La biblioteca Python de OpenAI brinda un acceso conveniente a la API de OpenAI desde aplicaciones escritas en el lenguaje Python. Incluye un conjunto predefinido de clases para recursos de API que se inicializan dinámicamente a partir de respuestas de API, lo que lo hace compatible con una amplia gama de versiones de la API de OpenAI.

Puede encontrar ejemplos de uso para la biblioteca Python de OpenAI en nuestra referencia de API y en el Libro de recetas de OpenAI .

Instalación

No necesita este código fuente a menos que desee modificar el paquete. Si solo desea usar el paquete, simplemente ejecute:

pip  install  --update  openai

Instalar desde la fuente con:

install python  setup.py 

Dependencias opcionales

Instalar dependencias para openai.embeddings_utils:

pip install openai[datalib]

Instalar soporte para pesos y sesgos :

pip install openai[wandb]

Las bibliotecas de datos gustan numpypandasno se instalan de forma predeterminada debido a su tamaño. Son necesarios para algunas funciones de esta biblioteca, pero generalmente no para comunicarse con la API. Si encuentra un MissingDependencyError, instálelo con:

pip install openai[datalib]

Uso

La biblioteca debe configurarse con la clave secreta de su cuenta, que está disponible en el sitio web . Establézcalo como la OPENAI_API_KEYvariable de entorno antes de usar la biblioteca:

export OPENAI_API_KEY='sk-...' 

O establecer openai.api_keya su valor:

import openai
openai.api_key = "sk-..."

# lista de modelos 
models = openai.Model.list()

# imprime el id del primer modelo 
print(models.data[0].id) 

# crea una finalización 
completion = openai.Completion.create(model="ada", prompt="Hello world") 

# imprimir la 
print(completion.choices[0].text)

Parámetros

Todos los puntos finales tienen un .createmétodo que admite un request_timeoutparámetro. Este parámetro toma Union[float, Tuple[float, float]]y generará un openai.error.Timeouterror si la solicitud excede ese tiempo en segundos (ver: https://requests.readthedocs.io/en/latest/user/quickstart/#timeouts ).

Puntos finales de Microsoft Azure

Para usar la biblioteca con los puntos finales de Microsoft Azure, debe configurar api_typeapi_baseapi_versionademás de api_key. El api_typedebe establecerse en ‘azure’ y los demás corresponden a las propiedades de su punto final. Además, el nombre de la implementación debe pasarse como parámetro del motor.

import openai
openai.api_type = "azure"
openai.api_key = "..."
openai.api_base = "https://example-endpoint.openai.azure.com"
openai.api_version = "2023-03-15-preview"

# create a completion
completion = openai.Completion.create(deployment_id="deployment-name", prompt="Hello world")

# print the completion
print(completion.choices[0].text)

Tenga en cuenta que, por el momento, los puntos finales de Microsoft Azure solo se pueden usar para operaciones de finalización, incrustación y ajuste. Para obtener un ejemplo detallado de cómo usar el ajuste fino y otras operaciones con puntos de enlace de Azure, consulte los siguientes cuadernos de Jupyter:

Autenticación de directorio activo de Microsoft Azure

Para usar Microsoft Active Directory para autenticarse en su punto final de Azure, debe configurar api_type«azure_ad» y pasar el token de credencial adquirido a api_key. El resto de los parámetros deben configurarse como se especifica en la sección anterior.

from azure.identity import DefaultAzureCredential
import openai

# Request credential
default_credential = DefaultAzureCredential()
token = default_credential.get_token("https://cognitiveservices.azure.com/.default")

# Setup parameters
openai.api_type = "azure_ad"
openai.api_key = token.token
openai.api_base = "https://example-endpoint.openai.azure.com/"
openai.api_version = "2023-03-15-preview"

# ...

Interfaz de línea de comandos

Esta biblioteca también proporciona una openaiutilidad de línea de comandos que facilita la interacción con la API desde su terminal. Ejecutar openai api -hpara el uso.

# list models
openai api models.list

# create a completion
openai api completions.create -m ada -p "Hello world"

# create a chat completion
openai api chat_completions.create -m gpt-3.5-turbo -g user "Hello world"

# generate images via DALL·E API
openai api image.create -p "two dogs playing chess, cartoon" -n 1

      

       

      

Código de ejemplo

Se pueden encontrar ejemplos de cómo usar esta biblioteca de Python para realizar varias tareas en el Libro de cocina de OpenAI . Contiene ejemplos de código para:

  • Clasificación mediante ajuste fino
  • Agrupación
  • Búsqueda de código
  • Personalización de incrustaciones
  • Respuesta a preguntas a partir de un corpus de documentos.
  • Recomendaciones
  • Visualización de incrustaciones
  • Y más

Antes de julio de 2022, esta biblioteca OpenAI Python alojaba ejemplos de código en su carpeta de ejemplos, pero desde entonces todos los ejemplos se han migrado al Libro de cocina de OpenAI .

Charlar

Los modelos conversacionales, como los que gpt-3.5-turbose pueden llamar mediante el punto final de finalización de chat.

import openai
openai.api_key = "sk-..."  # supply your API key however you choose

completion = openai.ChatCompletion.create(model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Hello world!"}])
print(completion.choices[0].message.content)

incrustaciones

En la biblioteca Python de OpenAI, una incrustación representa una cadena de texto como un vector de longitud fija de números de punto flotante. Las incrustaciones están diseñadas para medir la similitud o relevancia entre cadenas de texto.

Para obtener una incrustación de una cadena de texto, puede usar el método de incrustaciones de la siguiente manera en Python:

import openai
openai.api_key = "sk-..."  # supply your API key however you choose

# choose text to embed
text_string = "sample text"

# choose an embedding
model_id = "text-similarity-davinci-001"

# compute the embedding of the text
embedding = openai.Embedding.create(input=text_string, model=model_id)['data'][0]['embedding']

En este cuaderno de obtención de incrustaciones se muestra un ejemplo de cómo llamar al método de incrustaciones .

Se comparten ejemplos de cómo usar incrustaciones en los siguientes cuadernos de Jupyter:

Para obtener más información sobre incrustaciones y los tipos de incrustaciones que ofrece OpenAI, lea la guía de incrustaciones en la documentación de OpenAI.

Sintonia FINA

Ajustar un modelo en los datos de entrenamiento puede mejorar los resultados (al darle al modelo más ejemplos de los que aprender) y reducir el costo o la latencia de las llamadas a la API (principalmente al reducir la necesidad de incluir ejemplos de entrenamiento en las indicaciones).

Se comparten ejemplos de ajustes finos en los siguientes cuadernos de Jupyter:

Sincronice sus ajustes finos con Pesos y sesgos para realizar un seguimiento de experimentos, modelos y conjuntos de datos en su tablero central con:

openai wandb sync

Para obtener más información sobre el ajuste fino, lea la guía de ajuste fino en la documentación de OpenAI.

Moderación

OpenAI proporciona un punto final de moderación que se puede usar para verificar si el contenido cumple con la política de contenido de OpenAI

import openai
openai.api_key = "sk-..."  # supply your API key however you choose

moderation_resp = openai.Moderation.create(input="Here is some perfectly innocuous text that follows all OpenAI content policies.")

Consulte la guía de moderación para obtener más detalles.

Generación de imágenes (DALL·E)

import openai
openai.api_key = "sk-..."  # supply your API key however you choose

image_resp = openai.Image.create(prompt="two dogs playing chess, oil painting", n=4, size="512x512")

Transcripción de audio (susurro)

import openai
openai.api_key = "sk-..."  # supply your API key however you choose
f = open("path/to/file.mp3", "rb")
transcript = openai.Audio.transcribe("whisper-1", f)

API asíncrona

El soporte asíncrono está disponible en la API al anteponer aun método vinculado a la red:

import openai
openai.api_key = "sk-..."  # supply your API key however you choose

async def create_completion():
    completion_resp = await openai.Completion.acreate(prompt="This is a test", model="davinci")

Para hacer que las solicitudes asíncronas sean más eficientes, puede pasar las suyas propias aiohttp.ClientSession, pero debe cerrar manualmente la sesión del cliente al final de su ciclo de programa/evento:

import openai
from aiohttp import ClientSession

openai.aiosession.set(ClientSession())
# At the end of your program, close the http session
await openai.aiosession.get().close()

Consulte la guía de uso para obtener más detalles.

Requisitos

  • Pitón 3.7.1+

En general, queremos admitir las versiones de Python que utilizan nuestros clientes. Si tiene problemas con alguna versión, infórmenos en nuestra página de soporte .

Crédito

Esta biblioteca está bifurcada de Stripe Python Library .

EJEMPLOS OPENIA

OpenAi API

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Ingenio Hosting.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.