- Die OpenAI API-Kompatibilität des Qiskit Code Assistant befindet sich im Vorschau-Status und kann sich noch ändern.
- Wenn du Feedback hast oder das Entwicklerteam kontaktieren möchtest, nutze den Qiskit Slack Workspace-Kanal oder die zugehörigen öffentlichen GitHub-Repositories.
Qiskit Code Assistant - OpenAI API-Kompatibilität
Qiskit Code Assistant bietet Kompatibilität mit einem Teil der OpenAI API-Spezifikation, insbesondere mit den Completions API-Endpunkten. Ziel dieser Kompatibilität ist es, Drittanbieter-Paketen eine nahtlose Verbindung zum Qiskit Code Assistant zu ermöglichen – mithilfe bekannter KI-Bibliotheken und -Methoden wie OpenAI, LiteLLM oder anderer.
Unterstützte OpenAI API-Endpunkte
| Methode | Pfad | Kommentar |
|---|---|---|
| GET | /v1/models | Alle Modelle auflisten |
| GET | /v1/model/{model} | Modelldetails abrufen |
| POST | /v1/completions | Prompt zur Vervollständigung an das Modell senden |
Der /v1/completions-Endpunkt schlägt mit einem 403-Fehler fehl, wenn der Modell-Haftungsausschluss noch nicht akzeptiert wurde. Im Folgenden wird erklärt, wie du den Modell-Haftungsausschluss einsehen und akzeptieren kannst.
Weitere Endpunkte (nicht Teil des OpenAI-Schemas, zur praktischen Nutzung bereitgestellt):
| Methode | Pfad | Kommentar |
|---|---|---|
| GET | /v1/model/{model}/disclaimer | Modell-Haftungsausschluss abrufen |
| POST | /v1/model/{model}/disclaimer | Modell-Haftungsausschluss akzeptieren |
| POST | /v1/completions/accept | Vervollständigung annehmen oder ablehnen |
Um den Modell-Haftungsausschluss abzurufen bzw. einzusehen, sende eine GET-Anfrage an den Disclaimer-Endpunkt. Beispiel:
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>'
Wenn du dem Modell-Haftungsausschluss zustimmst, akzeptiere ihn per POST an den Disclaimer-Endpunkt – gib dabei die ID des Haftungsausschlusses und an, ob er akzeptiert oder abgelehnt wird. Beispiel:
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
}'
Beispiele
Offizielle OpenAI Python-Bibliothek verwenden
Die OpenAI Python-Bibliothek bietet komfortablen Zugriff auf die OpenAI REST API (wie sie etwa vom Qiskit Code Assistant bereitgestellt wird) aus jeder Python-3.8+-Anwendung heraus. Weitere Details findest du im Installationsabschnitt der Readme der OpenAI Python API-Bibliothek.
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}")
LiteLLM verwenden
LiteLLM ist eine praktische Python-Bibliothek, um über das OpenAI-Format auf verschiedene LLM-APIs zuzugreifen (Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq usw.). Weitere Details findest du in der LiteLLM-Dokumentation.
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)