Zum Hauptinhalt springen
Hinweise
  • 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

MethodePfadKommentar
GET/v1/modelsAlle Modelle auflisten
GET/v1/model/{model}Modelldetails abrufen
POST/v1/completionsPrompt zur Vervollständigung an das Modell senden
hinweis

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):

MethodePfadKommentar
GET/v1/model/{model}/disclaimerModell-Haftungsausschluss abrufen
POST/v1/model/{model}/disclaimerModell-Haftungsausschluss akzeptieren
POST/v1/completions/acceptVervollstä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)