이 데모는 Learn Microsoft 웹사이트를 기반으로 합니다.
좀 더 복잡한 방식으로 어시스턴트를 사용하는 방법을 보여주기 위해 저장소에서 다른 jupyter 노트북을 사용할 수 있습니다.
이 데모에서는 Python, 라이브러리 openAi 및 Azure를 사용하여 jupyter 노트북에서 사용할 보조자를 만듭니다.
Azure Ai studio에서 직접 테스트하고 싶다면 여기 Azure OpenAi studio
Azure Ai studio 설명서
보조자(또는 함께 일할 수 있는 여러 사람!)는 도구를 사용하여 질문에 답하고, 권장 사항을 제공하고, 명령을 실행하는 등 다양한 작업을 수행할 수 있습니다.
어시스턴트는 몇 가지 도구를 가질 수 있습니다.
어시스턴트를 사용하여 챗봇, 가상 에이전트 등과 같은 광범위한 애플리케이션을 구축할 수 있습니다.
분명히 사용자의 요청이나 요구 사항을 처리하기 위해 스레드 파이프라인을 생성하는 도구가 포함된 일부 보조자를 몇 줄의 코드로 생성할 수 있습니다. 보조자는 사용자의 요청에 따라 요구에 맞는 올바른 도구를 가져갑니다.
같은 아이디어로 더 나은 응답을 얻거나 어시스턴트 비용을 제한하기 위해 어시스턴트별로 다른 모델을 사용할 수 있습니다.
문제를 해결하거나 사용자에게 응답을 제공하기 위해 하나의 스레드(비동기 여부)에서 서로 다른 도구를 사용하여 여러 보조자를 생성할 수 있으며, 서로 다른 보조자를 사용하여 서로 다른 스레드를 가질 수도 있습니다.
다중 보조 스레드는 병렬 함수 호출로 실행됩니다.
결국 이 라이브러리를 사용하면 json 형식으로 응답을 검색하고 Python에서 사용하기 쉬운 형식으로 이에 대한 프로세스를 만들 수 있습니다.
어시스턴트의 오케스트레이션을 생성하려면 다음을 관리해야 합니다.
저장소 루트의 첫 번째 데모는 Microsoft 문서를 기반으로 한 간단한 도우미입니다.
AoaiAssistant.ipynb
이름 시나리오 | 설명 노트 | 링크 |
---|---|---|
수학 해결 도우미 | 코드 해석기만 도구로 사용하는 보조자 1명 | AoaiAssistant.ipynb |
로컬에서 노트북을 테스트하려면 다음이 필요합니다.
파이썬 3.8 이상
Visual Studio 코드 및 플러그인:
Azure 구독 - 첫 번째 구독의 경우 200$
Azure OpenAi 서비스에 대한 액세스 AOAI에 대한 액세스 요청
lastet gpt4 0125 모델에 대한 액세스(실제로 스웨덴 중부, 미국 서부, 일본 동부에서 사용 가능)
다른 모델은 에이전트 기능과 호환됩니다.
해당 지역에 맞게 Azure Open Ai 서비스를 위해 Portal Azure에 서비스를 배포합니다.
Azure openAi 서비스 Ai studio에서 모델을 배포하고 배포 이름을 지정합니다.
또는
Github를 통해 클라우드에서 노트북을 사용하기 위한 Codespace
Azure Ai studio에서 모델 배포 이름(일반적으로 배포할 때 모델 이름과 다를 수 있는 이름을 지정함)의 경우, 그렇지 않은 경우 모델의 배포 섹션에서 찾을 수 있습니다. 상기시켜주지 마세요
secrets.env에서 이름이 바뀐 secrets_env의 정보를 올바르게 수정해야 합니다.
Open Ai 서비스에 대한 Azure 끝점과 Azure 키는 Azure 포털/구독에서 찾을 수 있습니다. 또는 Ai studio의 대화 카테고리에서 직접 모델을 선택하고 첫 번째 단계에서 버튼 코드를 클릭합니다. 그리고 키를 얻으려면 "비밀 표시" 버튼을 클릭해야 하며 엔드포인트가 예제 코드에 표시됩니다.
각 셀 왼쪽에 있는 재생 버튼으로 각 코드 단계를 클릭해야 합니다.
결과와 수집된 모든 정보가 포함된 이 json 덤프의 마지막 셀에서 오류가 발생하지 않습니다.
준비가 되면 AzureAOAI.ipynb 노트북의 단계를 수행할 수 있습니다.
내 경우에는 gpt4-1106에 대한 내 모델 배포 이름이 gpt-4turbo 입니다.
결과에 대해 일부 프로세스를 수행하거나 어시스턴트 결과를 사용하여 일부 조정을 수행하려는 경우 이제 Visual Studio 코드(또는 codespace가 있는 브라우저 내부)에서 Notebook Python을 사용할 수 있습니다.
어시스턴트를 만들었나요? 스레드와 메시지를 관리하는 방법을 알고 싶으십니까?
우선 이해를 돕기 위해 문서를 살펴보고 조수와 함께 시작했습니다.
특정 흐름을 존중하여 스레드를 생성하고 스레드 내 메시지를 관리합니다.
시퀀스 다이어그램
보조자 생성으로서의 참가자 A
스레드 생성으로서의 참가자 B
참가자 C를 사용자 메시지 생성으로 사용
스레드 실행으로서의 참가자 D
참가자 E를 실행 상태 검색으로 사용
상태 확인 루프로서의 참가자 F
메시지 검색으로서의 참가자 G
A->>B: 모델을 사용하여 도우미 만들기
B->>C: 스레드 생성
C->>D: 스레드에 사용자 메시지 추가
D->>E: 스레드 실행
E->>F: 실행 상태 검색
F->>F: 상태가 최종이 될 때까지 반복
F-->>G: 상태: 완료됨
G 오른쪽 참고: 메시지 가져오기 및 표시
F-->>A: 상태: 취소됨
F-->>A: 상태: 만료됨
F-->>A: 상태: 실패
{
"data" : [
{
"id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " ,
"assistant_id" : " asst_vid43QSBUFAVr7f7nraAwfkS " , // the id of the assistant
"content" : [
{
"text" : {
"annotations" : [],
"value" : " The solution to the equation \ (3x + 11 = 14 \ ) is \ (x = 1 \ ). " // the result of the assistant
},
"type" : " text "
}
],
"created_at" : 1706827368 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " assistant " ,
"run_id" : " run_VlCTYceNmV8HlQyOLQUe7Xj6 " ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP "
},
{
"id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " ,
"assistant_id" : null ,
"content" : [
{
"text" : {
"annotations" : [],
"value" : " I need to solve the equation `3x + 11 = 14`. Can you help me? " // the rquest of the user
},
"type" : " text "
}
],
"created_at" : 1706827327 ,
"file_ids" : [],
"metadata" : {},
"object" : " thread.message " ,
"role" : " user " ,
"run_id" : null ,
"thread_id" : " thread_KM402gTevvYxlfxYA1ONQPHP " // id of the thread
}
],
"object" : " list " ,
"first_id" : " msg_5Oc2nmN7boHKfYuJaOnxkYrQ " , // the id of the first message - request user
"last_id" : " msg_ZHWVk1gJT292L4YJzlbLjmFq " , // Last message of the thread
"has_more" : false
}
코드 해석기 도구는 Python 코드로 변환됩니다. 이 사용 사례에서는 Sympy 또는 numpy와 같은 전용 라이브러리를 사용하여 수학 문제에 대한 보조 솔루션을 확인하려는 경우
이러한 정보는 Python 라이브러리 python openai의 openAi 라이브러리에서 추출됩니다.
code_interpreter
, retrieval
또는 function
유형일 수 있습니다.