Vai al contenuto principale
Note
  • 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

MetodoPercorsoDescrizione
GET/v1/modelsElenca tutti i modelli
GET/v1/model/{model}Ottieni i dettagli del modello
POST/v1/completionsInvia un prompt al modello per il completamento
nota

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

MetodoPercorsoDescrizione
GET/v1/model/{model}/disclaimerOttieni il disclaimer del modello
POST/v1/model/{model}/disclaimerAccetta il disclaimer del modello
POST/v1/completions/acceptAccetta 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)