- La compatibilità di Qiskit Code Assistant con le API OpenAI è in anteprima e soggetta a modifiche.
- Per inviare feedback o contattare il team di sviluppo, usa il canale Qiskit Slack Workspace o i repository GitHub pubblici correlati.
Qiskit Code Assistant - Compatibilità con le API OpenAI
Qiskit Code Assistant offre compatibilità con un sottoinsieme della specifica delle API OpenAI, in particolare con gli endpoint delle API per il completamento. L'obiettivo di questa compatibilità è consentire a pacchetti di terze parti di connettersi a Qiskit Code Assistant in modo trasparente, utilizzando librerie e metodi noti nel campo dell'intelligenza artificiale, come OpenAI, LiteLLM e altri.
Endpoint delle API OpenAI supportati
| Metodo | Percorso | Descrizione |
|---|---|---|
| GET | /v1/models | Elenca tutti i modelli |
| GET | /v1/model/{model} | Ottieni i dettagli del modello |
| POST | /v1/completions | Invia un prompt al modello per il completamento |
L'endpoint /v1/completions restituisce un errore 403 se il disclaimer del modello non è stato accettato. Vedi di seguito come visualizzare e accettare il disclaimer del modello.
Sono disponibili anche endpoint aggiuntivi (non inclusi nello schema OpenAI, forniti per comodità):
| Metodo | Percorso | Descrizione |
|---|---|---|
| GET | /v1/model/{model}/disclaimer | Ottieni il disclaimer del modello |
| POST | /v1/model/{model}/disclaimer | Accetta il disclaimer del modello |
| POST | /v1/completions/accept | Accetta o rifiuta il completamento |
Per recuperare e visualizzare il disclaimer del modello, effettua una richiesta GET all'endpoint del disclaimer. Ad esempio:
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>'
Se sei d'accordo con il disclaimer del modello e vuoi accettarlo, effettua una richiesta POST all'endpoint del disclaimer fornendo l'ID del disclaimer e indicando se viene accettato o rifiutato. Ad esempio:
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
}'
Esempi
Usare la libreria Python ufficiale di OpenAI
La libreria Python di OpenAI fornisce un accesso pratico alle API REST di OpenAI (come quelle offerte da Qiskit Code Assistant) da qualsiasi applicazione Python 3.8 o superiore. Per ulteriori dettagli, consulta la sezione Installazione del README della libreria Python per le API 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}")
Usare LiteLLM
LiteLLM è una pratica libreria Python per accedere a molteplici API di LLM utilizzando il formato OpenAI (Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq e così via). Per ulteriori dettagli, consulta la documentazione di LiteLLM.
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)