Aller au contenu principal
Notes
  • La compatibilité de Qiskit Code Assistant avec l'API OpenAI est en version préliminaire et est susceptible d'évoluer.
  • Si tu as des retours ou souhaites contacter l'équipe de développement, utilise le canal Qiskit Slack Workspace ou les dépôts GitHub publics correspondants.

Qiskit Code Assistant - Compatibilité avec l'API OpenAI

Qiskit Code Assistant offre une compatibilité avec un sous-ensemble de la spécification de l'API OpenAI, notamment avec les endpoints de l'API de complétions. L'objectif de cette compatibilité est de permettre aux packages tiers de se connecter à Qiskit Code Assistant de façon transparente en utilisant des bibliothèques et méthodes liées à l'IA bien connues, comme OpenAI, LiteLLM, ou d'autres.

Endpoints de l'API OpenAI pris en charge

MéthodeCheminCommentaire
GET/v1/modelsLister tous les modèles
GET/v1/model/{model}Obtenir le détail d'un modèle
POST/v1/completionsEnvoyer un prompt au modèle pour complétion
remarque

L'endpoint /v1/completions échoue avec une erreur 403 si la clause de non-responsabilité du modèle n'a pas été acceptée. Consulte la section suivante pour savoir comment afficher et accepter la clause de non-responsabilité du modèle.

Les endpoints supplémentaires (non inclus dans le schéma OpenAI, fournis pour plus de commodité) sont les suivants :

MéthodeCheminCommentaire
GET/v1/model/{model}/disclaimerObtenir la clause de non-responsabilité du modèle
POST/v1/model/{model}/disclaimerAccepter la clause de non-responsabilité du modèle
POST/v1/completions/acceptAccepter ou rejeter une complétion

Pour récupérer/afficher la clause de non-responsabilité du modèle, effectue une requête GET vers l'endpoint de la clause. Par exemple :

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 tu acceptes la clause de non-responsabilité du modèle, pour l'accepter, effectue une requête POST vers l'endpoint de la clause en fournissant l'identifiant de la clause et si elle est acceptée ou rejetée. Par exemple :

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
}'

Exemples

Utiliser la bibliothèque Python officielle d'OpenAI

La bibliothèque Python OpenAI offre un accès pratique à l'API REST OpenAI (comme celle fournie par Qiskit Code Assistant) depuis n'importe quelle application Python 3.8+. Consulte plus de détails dans la section Installation du README de la bibliothèque API Python 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}")

Utiliser LiteLLM

LiteLLM est une bibliothèque Python pratique pour accéder à plusieurs API de LLM en utilisant le format OpenAI (Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq, etc.). Consulte la documentation LiteLLM pour plus de détails.

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)