Bing Search를 사용하여 접지
Bing Search 를 통해 Azure AI 에이전트는 응답을 생성할 때 실시간 공용 웹 데이터를 통합할 수 있습니다. Bing Search 리소스를 사용하여 Grounding을 만든 다음, 이 리소스를 Azure AI 에이전트에 연결해야 합니다. 사용자가 쿼리를 보내면 Azure AI 에이전트는 Bing Search를 사용한 접지 기능을 활용해야 하는지 여부를 결정합니다. 그렇다면 Bing을 활용하여 공용 웹 데이터를 검색하고 관련 청크를 반환합니다. 마지막으로 Azure AI 에이전트는 반환된 청크를 사용하여 응답을 생성합니다.
실시간 공개 데이터가 필요한 "오늘 주요 뉴스란 무엇인가요" 또는 "미국 소매업의 최근 업데이트란?"과 같은 질문을 할 수 있습니다.
개발자와 최종 사용자는 Bing Search를 사용하여 Grounding에서 반환된 원시 콘텐츠에 액세스할 수 없습니다. 그러나 응답에는 응답을 생성하는 데 사용되는 웹 사이트에 대한 링크와 검색에 사용되는 Bing 쿼리에 대한 링크가 포함된 인용이 포함됩니다. 이러한 두 참조는 Bing Search의 사용 및 표시 요구 사항에 따라 Microsoft에서 제공하는 정확한 형식으로 보존되고 표시되어야 합니다. 자세한 내용은 Bing Search 결과 섹션을 사용하여 Grounding을 표시하는 방법을 참조하세요.
Important
- Bing Search를 사용한 접지 사용 시 비용이 발생할 수 있습니다. 자세한 내용은 가격 책정 페이지를 참조하세요.
- Azure CLI와 같은 코드 우선 환경을 통해 Bing Search 리소스에서 Grounding을 만들고 사용하거나 배포 템플릿을 통해 배포하면 때때로 업데이트될 수 있는 사용 가능한 https://www.microsoft.com/en-us/bing/apis/grounding-legal약관에 바인딩되어 준수해야 합니다.
- Bing Search에서 Grounding을 사용하는 경우 고객 데이터는 Azure 규정 준수 경계 외부에 Bing Search 서비스를 사용하여 Grounding으로 전송됩니다. Bing Search를 사용한 접지는 동일한 데이터 처리 조건(처리 위치 포함)의 적용을 받지 않으며 Bing 검색 사용 약관에 설명된 대로 Azure AI 에이전트 서비스와 동일한 규정 준수 표준 및 인증이 없습니다. 에이전트에서 Bing Search를 사용한 접지 사용이 요구 사항과 요구 사항을 충족하는지 여부를 평가하는 것은 사용자의 책임입니다.
Bing Search를 사용하여 접지 작동 방식
사용자 쿼리는 최종 사용자가 에이전트에 보내는 메시지입니다( 예: "오늘 우산을 가져와야 하나요? 시애틀에 있어요." 지침은 개발자가 컨텍스트를 공유하고 다양한 도구를 사용하거나 동작하는 방법에 대한 지침을 AI 모델에 제공하기 위해 제공할 수 있는 시스템 메시지입니다.
사용자가 쿼리를 보낼 때 고객의 AI 모델 배포는 먼저 제공된 지침을 사용하여 쿼리를 처리하여 나중에 Bing 검색 쿼리( 개발자가 볼 수 있음)를 수행합니다. Bing을 사용한 접지에서는 관련 검색 결과를 고객의 모델 배포에 반환한 다음 최종 출력을 생성합니다. Bing Search에서 Grounding을 사용하는 경우 Bing 검색 쿼리와 리소스 키만 Bing으로 전송되며 최종 사용자별 정보는 포함되지 않습니다. 리소스 키는 청구 및 요금 제한 목적으로만 Bing으로 전송됩니다. 접지 목적으로 생성되어 Bing으로 전송되는 모든 Bing 검색 쿼리는 Azure 규정 준수 경계 외부의 리소스 키와 함께 Bing Search 서비스를 사용하여 Grounding으로 전송됩니다. Bing Search를 사용한 접지는 Bing의 사용 약관에 따라 달라지며 Bing 검색 사용 약관에 설명된 대로 Azure AI 에이전트 서비스와 동일한 규정 준수 표준 및 인증이 없습니다. 에이전트에서 Bing Search와 함께 접지 기능을 사용하는 것이 요구 사항과 요구 사항을 충족하는지 여부를 평가하는 것은 사용자의 책임입니다.
사용량 지원
Azure AI 파운드리 지원 | Python SDK | C# SDK | JavaScript SDK | REST API | 기본 에이전트 설정 | 표준 에이전트 설정 |
---|---|---|---|---|---|---|
✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
설치 프로그램
참고 항목
- Bing Search를 사용하여 접지하는 작업은 다음 Azure OpenAI 모델
gpt-3.5-turbo-0125
에서만 작동합니다. ,gpt-4-0125-preview
,gpt-4-turbo-2024-04-09
gpt-4o-0513
빠른 시작의 단계에 따라 Azure AI 에이전트를 만듭니다.
Bing Search 리소스를 사용하여 Grounding을 만듭니다. 구독 또는
contributor
리소스 그룹을 만들려면 구독 또는 리소스 그룹에 역할이owner
있어야 합니다.- Azure Portal에서 만들 수 있으며 생성 양식에서 다른 필드를 선택할 수 있습니다. Azure AI 에이전트, AI 프로젝트 및 기타 리소스와 동일한 리소스 그룹에 Bing Search 리소스를 사용하여 이 접지를 만들어야 합니다.
- 코드 우선 환경을 통해 만들 수도 있습니다. 그렇다면 Bing Search를 Azure 리소스 공급자로 수동으로 등록 해야 합니다. 리소스 공급자에 대한
/register/action
작업을 수행할 수 있는 권한이 있어야 합니다. 사용 권한은 기여자 및 소유자 역할에 포함됩니다.
az provider register --namespace 'Microsoft.Bing'
Bing Search 리소스를 사용하여 Grounding을 만든 후에는 Azure Portal에서 찾을 수 있습니다. 리소스를 만든 리소스 그룹으로 이동하여 만든 Bing Search 리소스를 사용하여 Grounding을 검색합니다.
이 문서의 맨 위에 나열된 코드 예제 또는 Azure AI Foundry 포털을 사용하여 프로그래밍 방식으로 에이전트에 Bing Search 도구를 사용하여 접지 도구를 추가할 수 있습니다. 포털을 사용하려는 경우 에이전트에 대한 만들기 및 디버그 화면에서 오른쪽의 설치 창 아래로 스크롤하여 정보를 확인합니다. 그런 다음, 추가를 선택합니다.
Bing Search를 사용하여 접지를 선택하고 프롬프트에 따라 도구를 추가합니다. 에이전트당 하나만 추가할 수 있습니다.
새 연결을 추가하려면 클릭합니다. 연결을 추가한 후에는 기존 목록에서 직접 선택할 수 있습니다.
사용할 Bing Search 리소스를 사용하여 접지(Grounding)를 선택하고 연결을 추가하려면 클릭합니다.
Bing Search 결과를 사용하여 접지 표시 방법
Bing의 사용 약관 및 사용 약관 및 표시 요구 사항에 따라 웹 사이트 URL과 Bing 검색 쿼리 URL을 사용자 지정 인터페이스에 모두 표시해야 합니다. API 응답에서 매개 변수를 통해 annotations
웹 사이트 URL을 찾고 세부 정보를 통해 runstep
Bing 검색 쿼리 URL을 찾을 수 있습니다. 웹 페이지를 렌더링하려면 Bing 검색 쿼리 URL www.bing.com
의 엔드포인트를 대체하고 Bing 검색 쿼리 URL은 "https://www.bing.com/search?q={search query}"와 같이 표시되는 것이 좋습니다.
run_steps = project_client.agents.list_run_steps(run_id=run.id, thread_id=thread.id)
run_steps_data = run_steps['data']
print(f"Last run step detail: {run_steps_data}")
기타 법적 고려 사항
Microsoft는 Bing과 함께 Grounding에 보내는 데이터를 사용하여 Microsoft 제품 및 서비스를 개선합니다. 이 서비스에 개인 데이터를 보내는 경우 데이터 주체로부터 충분한 동의를 얻을 책임이 있습니다. 온라인 서비스 약관의 데이터 보호 약관은 Bing을 사용한 접지에 적용되지 않습니다.
Bing Search를 사용한 접지 사용은 사용 약관의 적용을 받습니다. Bing Search와 함께 Grounding을 사용하면 이러한 사용 약관에 구속되고 이를 준수하는 데 동의합니다.
1단계: 프로젝트 클라이언트 만들기
AI 프로젝트 및 기타 리소스에 연결하기 위한 연결 문자열 포함하는 클라이언트 개체를 만듭니다.
import os
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
from azure.ai.projects.models import BingGroundingTool
# Create an Azure AI Client from a connection string, copied from your Azure AI Foundry project.
# At the moment, it should be in the format "<HostName>;<AzureSubscriptionId>;<ResourceGroup>;<HubName>"
# Customer needs to login to Azure subscription via Azure CLI and set the environment variables
project_client = AIProjectClient.from_connection_string(
credential=DefaultAzureCredential(),
conn_str=os.environ["PROJECT_CONNECTION_STRING"],
)
2단계: Bing 검색 도구를 사용하도록 설정된 접지로 에이전트 만들기
에이전트에서 Bing으로 접지 검색 도구를 사용할 수 있도록 하려면 연결을 사용하여 도구를 초기화하고 에이전트에 연결합니다. Azure AI Foundry 포털에서 프로젝트의 연결된 리소스 섹션에서 연결을 찾을 수 있습니다.
bing_connection = project_client.connections.get(
connection_name=os.environ["BING_CONNECTION_NAME"]
)
conn_id = bing_connection.id
print(conn_id)
# Initialize agent bing tool and add the connection id
bing = BingGroundingTool(connection_id=conn_id)
# Create agent with the bing tool and process assistant run
with project_client:
agent = project_client.agents.create_agent(
model="gpt-4o",
name="my-assistant",
instructions="You are a helpful assistant",
tools=bing.definitions,
headers={"x-ms-enable-preview": "true"}
)
print(f"Created agent, ID: {agent.id}")
3단계: 스레드 만들기
# Create thread for communication
thread = project_client.agents.create_thread()
print(f"Created thread, ID: {thread.id}")
# Create message to thread
message = project_client.agents.create_message(
thread_id=thread.id,
role="user",
content="What is the top news today",
)
print(f"Created message, ID: {message.id}")
4단계: 실행 만들기 및 출력 확인
실행을 만들고 모델이 Bing Search 도구를 사용하여 사용자의 질문에 대한 응답을 제공하는지 확인합니다.
# Create and process agent run in thread with tools
run = project_client.agents.create_and_process_run(thread_id=thread.id, assistant_id=agent.id)
print(f"Run finished with status: {run.status}")
# Retrieve run step details to get Bing Search query link
# To render the webpage, we recommend you replace the endpoint of Bing search query URLs with `www.bing.com` and your Bing search query URL would look like "https://www.bing.com/search?q={search query}"
run_steps = project_client.agents.list_run_steps(run_id=run.id, thread_id=thread.id)
run_steps_data = run_steps['data']
print(f"Last run step detail: {run_steps_data}")
if run.status == "failed":
print(f"Run failed: {run.last_error}")
# Delete the assistant when done
project_client.agents.delete_agent(agent.id)
print("Deleted agent")
# Fetch and log all messages
messages = project_client.agents.list_messages(thread_id=thread.id)
print(f"Messages: {messages}")