- Qiskit Code Assistant의 OpenAI API 호환성은 미리 보기 릴리스 상태이며 변경될 수 있습니다.
- 피드백이 있거나 개발팀에 문의하려면 Qiskit Slack Workspace 채널 또는 관련 공개 GitHub 저장소를 이용하세요.
Qiskit Code Assistant - OpenAI API 호환성
Qiskit Code Assistant는 OpenAI API 사양의 일부, 특히 completions API 엔드포인트와의 호환성을 제공합니다. 이 호환성의 목적은 OpenAI, LiteLLM 등 잘 알려진 AI 관련 라이브러리와 메서드를 사용하여 서드파티 패키지가 Qiskit Code Assistant에 원활하게 연결할 수 있도록 하는 것입니다.
지원되는 OpenAI API 엔드포인트
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /v1/models | 모든 모델 목록 조회 |
| GET | /v1/model/{model} | 모델 상세 정보 조회 |
| POST | /v1/completions | 완성을 위해 모델에 프롬프트 전송 |
/v1/completions 엔드포인트는 모델 면책 조항이 수락된 경우 403 오류가 발생합니다. 모델 면책 조항을 확인하고 수락하는 방법은 다음을 참고하세요.
추가 엔드포인트(OpenAI 스키마에 포함되지 않으며 편의를 위해 제공됨)는 다음과 같습니다:
| 메서드 | 경로 | 설명 |
|---|---|---|
| GET | /v1/model/{model}/disclaimer | 모델의 면책 조항 조회 |
| POST | /v1/model/{model}/disclaimer | 모델의 면책 조항 수락 |
| POST | /v1/completions/accept | 완성 수락 또는 거부 |
모델 면책 조항을 조회/확인하려면 면책 조항 엔드포인트에 GET 요청을 보내세요. 예시:
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>'
모델 면책 조항에 동의하는 경우, 면책 조항의 ID와 수락 또는 거부 여부를 제공하여 면책 조항 엔드포인트에 POST 요청을 보내세요. 예시:
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
}'
예시
공식 OpenAI Python 라이브러리 사용
OpenAI Python 라이브러리는 Python 3.8 이상 애플리케이션에서 OpenAI REST API(Qiskit Code Assistant가 제공하는 것과 같은)에 편리하게 접근할 수 있도록 합니다. 자세한 내용은 OpenAI Python API 라이브러리 Readme의 설치 섹션을 참고하세요.
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}")
LiteLLM 사용
LiteLLM은 OpenAI 형식을 사용하여 여러 LLM API(Bedrock, Huggingface, VertexAI, TogetherAI, Azure, OpenAI, Groq 등)에 접근할 수 있는 편리한 Python 라이브러리입니다. 자세한 내용은 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)