이 페이지에서는 Example Store에서 예시를 검색하는 방법을 보여줍니다. 예시를 검색하는 방법은 다음과 같습니다.
FetchExamples
: 필터링 기준에 정확하게 일치하는 모든 예시를 검색합니다. 예가 몇 개만 있거나 지연 시간이 짧아야 하는 경우에 이 옵션을 사용하세요.SearchExamples
: 사용자 쿼리와 저장된 예시 간의 유사성 검색을 사용하여 예시를 가져옵니다. 예시가 많은 경우 이 옵션을 사용합니다.
기본 요건
이 페이지의 Python 샘플을 사용하기 전에 로컬 Python 환경에 Vertex AI SDK for Python을 설치하고 초기화해야 합니다.
다음 명령어를 실행하여 Example Store용 Vertex AI SDK for Python을 설치합니다.
pip install --upgrade google-cloud-aiplatform>=1.87.0
다음 코드 샘플을 사용하여 Example Store용 SDK를 가져오고 초기화합니다.
import vertexai from vertexai.preview import example_stores vertexai.init( project="PROJECT_ID", location="LOCATION" )
다음을 바꿉니다.
PROJECT_ID: 프로젝트 ID입니다.
LOCATION: 리전
us-central1
만 지원됩니다.
예시 가져오기
다음 샘플을 사용하여 예시를 가져옵니다. FetchExamples
는 필터링 기준에 정확하게 일치하는 모든 예시를 검색합니다.
Python용 Vertex AI SDK
다음 코드는 페이지당 최대 100개의 예시를 Example Store에서 모두 반환합니다.
from vertexai.preview import example_stores
example_store = example_stores.ExampleStore(EXAMPLE_STORE_NAME)
# Returns the dictionary representation of FetchExamplesResponse.
examples = example_store.fetch_examples()
function_names
를 사용하여 반환되는 예시를 제한하는 필터를 하나 이상 지정할 수 있습니다. 다음 예에서는 flight_booking_tool
및 hotel_booking_tool
함수가 포함된 예만 반환합니다.
# Returns examples that include either tool.
example_store.fetch_examples(
filter={
"function_names": {
"values": ["flight_booking_tool", "hotel_booking_tool"],
"array_operator": "CONTAINS_ANY"
}
}
)
# Returns examples that include *both* tools.
example_store.fetch_examples(
filter={
"function_names": {
"values": ["flight_booking_tool", "hotel_booking_tool"],
"array_operator": "CONTAINS_ALL"
}
}
)
search_keys
필터를 사용하여 검색 키에 의해 반환되는 예시를 제한할 수 있습니다.
# Returns examples that include any of the following search keys.
example_store.fetch_examples(
filter={"search_keys": ["How do I get to the airport?"]}
)
example_ids
필터를 사용하여 예시 ID별로 반환되는 예시를 제한할 수 있습니다. 예시 ID는 exampleTypes/stored_contents_example/examples/<var>EXAMPLE_ID</var>
형식을 사용합니다. 여기서 EXAMPLE_ID는 예시용으로 생성된 숫자 ID를 나타냅니다.
# Returns examples that have any of the following Example IDs.
example_store.fetch_examples(
example_ids=["exampleTypes/stored_contents_example/examples/09b1d383f92c47e7a2583a44ebbc7854"]
)
REST API
예시를 가져오려면 exampleStores.fetchExamples
메서드를 사용하여 POST 요청을 전송합니다.
요청 JSON 본문 예시에 지정된 function_names
필터는 flight_booking_tool
및 hotel_booking_tool
함수가 포함된 예시만 반환합니다.
요청 데이터를 사용하기 전에 다음을 바꿉니다.
- PROJECT_ID: 프로젝트 ID입니다.
- LOCATION: 예시 스토어를 만들 리전입니다. 지원되는 리전은
us-central1
뿐입니다. - EXAMPLE_STORE_ID: 예시를 업로드할 Example Store 인스턴스의 ID입니다.
HTTP 메서드 및 URL:
POST https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:fetchExamples
JSON 요청 본문:
{ "stored_contents_example_filter": { "function_names": { "values": ["flight_booking_tool", "hotel_booking_tool"], "array_operator": "CONTAINS_ANY" } } }
요청을 보내려면 다음 옵션 중 하나를 선택합니다.
curl
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:fetchExamples"
PowerShell
요청 본문을 request.json
파일에 저장하고 다음 명령어를 실행합니다.
$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://LOCATION-aiplatform.googleapis.com/v1beta1/projects/PROJECT_ID/locations/LOCATION/exampleStores/EXAMPLE_STORE_ID:fetchExamples" | Select-Object -Expand Content
다음과 유사한 JSON 응답이 표시됩니다. 여기서 EXAMPLE_ID는 예시용으로 생성된 ID를 나타냅니다.
검색 예시
예시 저장소는 stored_contents_example_key
와 저장된 예시의 검색 키 간의 유사성 점수를 기반으로 가장 관련성이 높은 예시를 찾습니다. 대화와 관련된 예시를 사용하면 모델이 예상되는 동작을 학습하는 데 도움이 됩니다.
Python용 Vertex AI SDK
다음 코드 샘플을 사용하여 Python용 Vertex AI SDK를 사용하여 관련 예시를 검색합니다.
example_store.search_examples(
parameters={
"stored_contents_example_key": "what's the weather in nyc"
},
# Only fetch the most similar examaple. The default value is 3.
top_k=1
)
"""
Response -- dictionary representation of SearchExamplesResponse.
{'results': [{'example': {'exampleId': 'exampleTypes/stored_contents_example/examples/16834837b178453783e471b459d99195',
'storedContentsExample': {'searchKey': 'What is the weather like in Boston?',
'contentsExample': {'contents': [{'role': 'user',
'parts': [{'text': 'What is the weather like in Boston?'}]}],
'expectedContents': [{'content': {'parts': [{'functionCall': {'name': 'get_current_weather',
'args': {'location': 'New York, NY'}}}]}},
{'content': {'parts': [{'functionResponse': {'name': 'get_current_weather',
'response': {'humidity': 65.0,
'description': 'Partly Cloudy',
'icon': 'partly-cloudy',
'temperature': 38.0,
'location': 'Boston, MA',
'wind': {'speed': 10.0, 'direction': 'NW'}}}}]}},
{'content': {'role': 'model',
'parts': [{'text': 'The weather in Boston is 38 degrees and partly cloudy.'}]}}]}}},
'similarityScore': 0.73527116}]}
"""
function_names
필터를 사용하여 유사성 검색에 포함할 예시를 제한할 수 있습니다.
example_store.search_examples(
parameters={
"stored_contents_example_key": "What's the weather in nyc",
"function_names": {
"values": ["weather_tool", "hotel_booking_tool"],
"array_operator": "CONTAINS_ANY"
}
}
)