Saltar al contenido principal
Notas
  • La compatibilidad de Qiskit Code Assistant con la API de OpenAI está en versión preliminar y puede cambiar.
  • Si tienes comentarios o quieres contactar al equipo de desarrollo, usa el canal de Qiskit en Slack o los repositorios públicos de GitHub relacionados.

Qiskit Code Assistant - Compatibilidad con la API de OpenAI

Qiskit Code Assistant ofrece compatibilidad con un subconjunto de la especificación de la API de OpenAI, específicamente con los endpoints de la API de completions. El objetivo de esta compatibilidad es permitir que paquetes de terceros se conecten a Qiskit Code Assistant de forma transparente, usando bibliotecas y métodos conocidos relacionados con IA, como OpenAI, LiteLLM u otros.

Endpoints de la API de OpenAI compatibles

MétodoRutaComentario
GET/v1/modelsLista todos los modelos
GET/v1/model/{model}Obtiene el detalle del modelo
POST/v1/completionsEnvía un prompt al modelo para completar
nota

El endpoint /v1/completions falla con un error 403 si el aviso de responsabilidad del modelo no ha sido aceptado. Consulta a continuación cómo ver y aceptar el aviso de responsabilidad del modelo.

Los endpoints adicionales (no forman parte del esquema de OpenAI, proporcionados por conveniencia) incluyen:

MétodoRutaComentario
GET/v1/model/{model}/disclaimerObtiene el aviso de responsabilidad del modelo
POST/v1/model/{model}/disclaimerAcepta el aviso de responsabilidad del modelo
POST/v1/completions/acceptAcepta o rechaza una completion

Para obtener o ver el aviso de responsabilidad del modelo, realiza una solicitud GET al endpoint del aviso. Por ejemplo:

curl -X 'GET' \
'https://qiskit-code-assistant.quantum.ibm.com/v1/model/mistral-small-3.2-24b-qiskit/disclaimer' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <IBM Quantum Classic API key>'

Si estás de acuerdo con el aviso de responsabilidad del modelo y deseas aceptarlo, realiza una solicitud POST al endpoint del aviso proporcionando el ID del aviso e indicando si lo aceptas o rechazas. Por ejemplo:

curl -X 'POST' \
'https://qiskit-code-assistant.quantum.ibm.com/v1/model/mistral-small-3.2-24b-qiskit/disclaimer' \
-H 'accept: application/json' \
-H 'Authorization: Bearer <IBM Quantum Classic API key>' \
-H 'Content-Type: application/json' \
-d '{
"disclaimer": "<DISCLAIMER_ID>",
"accepted": true
}'

Ejemplos

Usar la biblioteca oficial de Python de OpenAI

La biblioteca de Python de OpenAI proporciona acceso conveniente a la API REST de OpenAI (como la que ofrece Qiskit Code Assistant) desde cualquier aplicación Python 3.8+. Consulta más detalles en la sección de instalación del README de la biblioteca de la API de Python de OpenAI.

from openai import OpenAI

# Initialize the client with your API token
client = OpenAI(
api_key="<IBM Quantum Classic API token>",
base_url="https://qiskit-code-assistant.quantum.ibm.com/v1",
)

# Make a request to the completions API
try:
response = client.completions.create(
model="mistral-small-3.2-24b-qiskit",
prompt="#Transpile a random circuit using the Qiskit Transpiler Service",
)

# Print the generated text
print(response.choices[0].text)

except Exception as e:
print(f"An error occurred: {e}")

Usar LiteLLM

LiteLLM es una biblioteca de Python conveniente para acceder a múltiples APIs de LLM usando el formato de OpenAI (Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq, entre otros). Consulta la documentación de LiteLLM para más detalles.

from litellm import completion

response = completion(
model=f"text-completion-openai/mistral-small-3.2-24b-qiskit",
base_url="https://qiskit-code-assistant.quantum.ibm.com/v1",
messages=[
{
"role": "user",
"content": "#Transpile a random circuit using the Qiskit Transpiler Service",
}
],
api_key="<IBM Quantum Classic API key>",
)

completion_response = response.json()
print(completion_response)