- 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éthode | Chemin | Commentaire |
|---|---|---|
| GET | /v1/models | Lister tous les modèles |
| GET | /v1/model/{model} | Obtenir le détail d'un modèle |
| POST | /v1/completions | Envoyer un prompt au modèle pour complétion |
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éthode | Chemin | Commentaire |
|---|---|---|
| GET | /v1/model/{model}/disclaimer | Obtenir la clause de non-responsabilité du modèle |
| POST | /v1/model/{model}/disclaimer | Accepter la clause de non-responsabilité du modèle |
| POST | /v1/completions/accept | Accepter 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)