Pular para o conteúdo principal
Notas
  • 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étodoCaminhoComentário
GET/v1/modelsListar todos os modelos
GET/v1/model/{model}Obter detalhes do modelo
POST/v1/completionsEnviar prompt ao modelo para completion
nota

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étodoCaminhoComentário
GET/v1/model/{model}/disclaimerObter o aviso legal do modelo
POST/v1/model/{model}/disclaimerAceitar o aviso legal do modelo
POST/v1/completions/acceptAceitar 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)