Python OSDK 앱 시작
Python 앱은 생성 OSDK를 설치하여 Flask, Streamlit 또는 Jupyter 같은 환경에서 사용할 수 있습니다. 먼저 Developer Console 앱을 만들고 사용할 온톨로지 리소스와 SDK 버전을 정합니다.
Python과 토큰
Python은 3.10 이상, 3.15 미만을 사용합니다.
python3 --version
FOUNDRY_TOKEN은 앱 설정에서 제공한 접근 토큰을 비밀정보 관리 경로로 셸에 주입합니다. 개인 토큰을 Git에 커밋하지 않습니다.
조직 인증서
조직 네트워크가 사용자 CA를 요구하면 완전한 인증서 체인 파일을 준비하고 두 환경 변수를 같은 파일로 설정합니다.
: "${CA_BUNDLE:?조직의 CA 체인 파일 경로가 필요합니다}"
export SSL_CERT_FILE="$CA_BUNDLE"
export REQUESTS_CA_BUNDLE="$CA_BUNDLE"
certificate verify failed가 계속 나오면 인증서 신뢰 구성이 불완전합니다. 파일 경로, CA 체인과 프록시가 사용하는 인증서를 확인하고 네트워크 관리자와 신뢰 구성을 고칩니다.
--trusted-host는 지정 호스트의 인증서 검증을 끄므로 일시적인 원인 진단에만 사용할 수 있습니다. 이 옵션으로만 설치가 된다면 신뢰 체인 문제를 확인한 뒤 원래 검증을 복구해야 합니다. 프로덕션이나 자동화의 해결책으로 유지하지 않습니다.
생성 패키지 설치
Developer Console Overview에서 실제 SDK 패키지 이름과 인덱스 호스트/경로를 확인합니다. 다음 Bash는 FOUNDRY_SDK_PACKAGE, HTTPS 접두사를 제외한 FOUNDRY_PYPI_INDEX와 FOUNDRY_TOKEN을 외부에 설정한 경우입니다.
: "${FOUNDRY_TOKEN:?SDK 다운로드 토큰이 필요합니다}"
: "${FOUNDRY_SDK_PACKAGE:?생성 SDK 패키지 이름이 필요합니다}"
: "${FOUNDRY_PYPI_INDEX:?생성 SDK 인덱스 호스트와 경로가 필요합니다}"
PIP_EXTRA_INDEX_URL="https://:${FOUNDRY_TOKEN}@${FOUNDRY_PYPI_INDEX}" \
python3 -m pip install --upgrade "$FOUNDRY_SDK_PACKAGE"
인증서 진단을 위해 한 번만 --trusted-host를 쓰기로 한 경우에는 실제 Foundry 호스트에만 제한합니다. 이 명령의 토큰을 출력하거나 실행 환경을 공유하지 않습니다.
: "${FOUNDRY_HOST:?진단할 Foundry 호스트가 필요합니다}"
: "${FOUNDRY_TOKEN:?SDK 다운로드 토큰이 필요합니다}"
: "${FOUNDRY_SDK_PACKAGE:?생성 SDK 패키지 이름이 필요합니다}"
: "${FOUNDRY_PYPI_INDEX:?생성 SDK 인덱스 호스트와 경로가 필요합니다}"
PIP_EXTRA_INDEX_URL="https://:${FOUNDRY_TOKEN}@${FOUNDRY_PYPI_INDEX}" \
python3 -m pip install --upgrade "$FOUNDRY_SDK_PACKAGE" --trusted-host "$FOUNDRY_HOST"
진단 뒤 CA 체인을 고치고 --trusted-host 없이 다시 설치합니다.
사용자 토큰으로 클라이언트 구성
다음은 Python OSDK 2.x에서 생성 패키지가 ontology_sdk, 유형이 ExampleRestaurant인 가상 예입니다. FOUNDRY_URL에는 실제 HTTPS URL을 제공합니다.
import os
from ontology_sdk import FoundryClient, UserTokenAuth
def load_first_restaurant():
client = FoundryClient(
auth=UserTokenAuth(token=os.environ["FOUNDRY_TOKEN"]),
hostname=os.environ["FOUNDRY_URL"],
)
return client.ontology.objects.ExampleRestaurant.take(1)
자신의 생성 패키지와 유형 이름으로 바꿉니다. 호출하면 실제 데이터 권한에 따라 최대 객체 하나를 조회합니다. Foundry Python 함수 등 런타임 인증이 있는 환경에서는 인수 없는 FoundryClient()를 사용하므로 독립 앱의 토큰 코드를 그대로 넣을 필요는 없습니다.
Python OSDK 참조에서 페이지, 필터와 액션을, 1.x 이전에서 import 및 반환 타입 차이를 확인합니다.