Sari la conținutul principal
Note
  • Compatibilitatea Qiskit Code Assistant cu API-ul OpenAI se află în stadiu de previzualizare și poate fi modificată.
  • Dacă ai feedback sau vrei să contactezi echipa de dezvoltare, folosește canalul Qiskit Slack Workspace sau depozitele publice GitHub asociate.

Qiskit Code Assistant - Compatibilitate cu API-ul OpenAI

Qiskit Code Assistant oferă compatibilitate cu un subset al specificației API OpenAI, în special cu endpoint-urile API de completări. Scopul acestei compatibilități este de a permite pachetelor terțe să se conecteze la Qiskit Code Assistant fără probleme, folosind biblioteci și metode bine cunoscute legate de AI, precum OpenAI, LiteLLM sau altele.

Endpoint-urile API OpenAI acceptate

MetodăCaleComentariu
GET/v1/modelsListează toate modelele
GET/v1/model/{model}Obține detalii despre model
POST/v1/completionsTrimite un prompt modelului pentru completare
notă

Endpoint-ul /v1/completions eșuează cu o eroare 403 dacă declinul de responsabilitate al modelului a fost acceptat. Consultă cele de mai jos pentru a afla cum să vizualizezi și să accepți declinul de responsabilitate al modelului.

Endpoint-urile suplimentare (care nu fac parte din schema OpenAI, furnizate pentru comoditate) includ:

MetodăCaleComentariu
GET/v1/model/{model}/disclaimerObține declinul de responsabilitate al modelului
POST/v1/model/{model}/disclaimerAcceptă declinul de responsabilitate al modelului
POST/v1/completions/acceptAcceptă sau respinge o completare

Pentru a prelua/vizualiza declinul de responsabilitate al modelului, efectuează o cerere GET către endpoint-ul de disclaimer. De exemplu:

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

Dacă ești de acord cu declinul de responsabilitate al modelului, pentru a-l accepta, efectuează o cerere POST către endpoint-ul de disclaimer, furnizând ID-ul declinului de responsabilitate și dacă este acceptat sau respins. De exemplu:

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

Exemple

Folosește biblioteca oficială OpenAI pentru Python

Biblioteca OpenAI pentru Python oferă acces convenabil la API-ul REST OpenAI (cum ar fi cel furnizat de Qiskit Code Assistant) din orice aplicație Python 3.8+. Consultă mai multe detalii în secțiunea de instalare din README-ul bibliotecii API OpenAI pentru Python.

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}")

Folosește LiteLLM

LiteLLM este o bibliotecă Python convenabilă pentru a accesa mai multe API-uri LLM folosind formatul OpenAI (Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq și altele). Consultă documentația LiteLLM pentru mai multe detalii.

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)