- A compatibilidade do Qiskit Code Assistant com a API OpenAI está em versão de pré-lançamento e está sujeita a alterações.
- Se você tiver feedback ou quiser entrar em contato com a equipe de desenvolvimento, use o canal do Qiskit Slack Workspace ou os repositórios públicos relacionados no GitHub.
Qiskit Code Assistant - Compatibilidade com a API OpenAI
O Qiskit Code Assistant oferece compatibilidade com um subconjunto da especificação da API OpenAI, especificamente com os endpoints da API de completions. O objetivo dessa compatibilidade é permitir que pacotes de terceiros se conectem ao Qiskit Code Assistant de forma transparente, usando bibliotecas e métodos conhecidos relacionados a IA, como OpenAI, LiteLLM ou outros.
Endpoints da API OpenAI suportados
| Método | Caminho | Comentário |
|---|---|---|
| GET | /v1/models | Listar todos os modelos |
| GET | /v1/model/{model} | Obter detalhes do modelo |
| POST | /v1/completions | Enviar prompt ao modelo para completion |
O endpoint /v1/completions falha com um erro 403 se o aviso legal do modelo não tiver sido aceito. Veja a seguir como visualizar e aceitar o aviso legal do modelo.
Endpoints adicionais (não fazem parte do esquema OpenAI, fornecidos por conveniência) incluem:
| Método | Caminho | Comentário |
|---|---|---|
| GET | /v1/model/{model}/disclaimer | Obter o aviso legal do modelo |
| POST | /v1/model/{model}/disclaimer | Aceitar o aviso legal do modelo |
| POST | /v1/completions/accept | Aceitar ou rejeitar uma completion |
Para recuperar/visualizar o aviso legal do modelo, faça uma requisição GET ao endpoint do aviso legal. Por exemplo:
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 você concordar com o aviso legal do modelo, para aceitá-lo, faça uma requisição POST ao endpoint do aviso legal informando o ID do aviso e se ele é aceito ou rejeitado. Por exemplo:
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
}'
Exemplos
Usar a biblioteca oficial OpenAI para Python
A biblioteca OpenAI para Python fornece acesso conveniente à API REST da OpenAI (como a fornecida pelo Qiskit Code Assistant) a partir de qualquer aplicação Python 3.8+. Veja mais detalhes na seção de Instalação do Readme da biblioteca de API OpenAI para 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}")
Usar LiteLLM
LiteLLM é uma biblioteca Python conveniente para acessar múltiplas APIs de LLMs usando o formato OpenAI (Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq, entre outros). Veja a documentação do LiteLLM para mais detalhes.
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)