- 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ă | Cale | Comentariu |
|---|---|---|
| GET | /v1/models | Listează toate modelele |
| GET | /v1/model/{model} | Obține detalii despre model |
| POST | /v1/completions | Trimite un prompt modelului pentru completare |
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ă | Cale | Comentariu |
|---|---|---|
| GET | /v1/model/{model}/disclaimer | Obține declinul de responsabilitate al modelului |
| POST | /v1/model/{model}/disclaimer | Acceptă declinul de responsabilitate al modelului |
| POST | /v1/completions/accept | Acceptă 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)