- 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étodo | Ruta | Comentario |
|---|---|---|
| GET | /v1/models | Lista todos los modelos |
| GET | /v1/model/{model} | Obtiene el detalle del modelo |
| POST | /v1/completions | Envía un prompt al modelo para completar |
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étodo | Ruta | Comentario |
|---|---|---|
| GET | /v1/model/{model}/disclaimer | Obtiene el aviso de responsabilidad del modelo |
| POST | /v1/model/{model}/disclaimer | Acepta el aviso de responsabilidad del modelo |
| POST | /v1/completions/accept | Acepta 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)