OpenAI: 어시스턴트 실행 함수 작업
- 최종 업데이트2024/10/31
OpenAI: 어시스턴트 실행 함수 작업
OpenAI: 어시스턴트 실행 함수 동작을 활용하면 OpenAI 어시스턴트의 기능을 새로운 차원으로 끌어올릴 수 있습니다. 이는 OpenAI 어시스턴트 API를 활용하여 어시스턴트가 대화 중에 외부 기능을 호출할 수 있게 적극적으로 지원합니다. 이 기능은 어시스턴트를 방대한 추가 기능의 도구 상자에 적극적으로 연결하는 가교 역할을 합니다.
전제 조건
- 자동화에서 OpenAI 어시스턴스 실행 함수 작업을 사용하려면 Bot creator 역할을 보유해야 합니다.
- 요청을 보내는 데 필요한 자격증명을 보유하고 OpenAI 작업을 호출하기 전에 OpenAI: 인증 작업을 포함했는지 확인하십시오.
- OpenAI: 어시스턴트 실행 작업을 OpenAI 어시스턴트 실행 함수를 호출하기 전에 보유하고 있어야 합니다.
이 예시에서는 어시스턴트의 기능을 확장하는 OpenAI 어시스턴트 실행 함수 사용에 대해 자세히 설명합니다. 실행 환경 내에서 기존 어시스턴트를 호출하고, 중요한 정보(Thread ID
, Call ID
, Run ID
)를 추출하고, 이러한 ID를 활용해서 맞춤형 함수 응답을 정의하는 방법을 살펴봅시다. 예를 들어, 여기에는 주식 시장 어시스턴트가 로드되며 tools output list
(함수 응답)을 사용해 함수 결과가 정의됩니다.
프로시저
- Automation Anywhere Control Room에서 작업 창으로 이동하여 생성형 AI > OpenAI를 선택하고 인증 작업을 드래그하여 캔버스에 놓습니다. 인증하려면 API 키가 필요합니다. API 키 생성 및 인증에 대한 자세한 내용은 OpenAI: 인증 작업 항목에서 참조하십시오.
-
인증 작업 아래에 Open AI: 어시스턴트 작업 실행을 배치하고 어시스턴트 로드를 사용해서 어시스턴트를 로드합니다(주식 시장 어시스턴트).
메시지를 입력합니다(AAINC의 주가 가져오기). 응답은 문자열 변수 str_Response에 저장됩니다. Open AI: 어시스턴트 작업 실행에 대한 자세한 내용은 OpenAI: 어시스턴트 실행 작업 항목에서 참조하십시오.
주: 이 예시에서는 설명의 목적으로만 가상의 주식 코드 AAINC를 사용했습니다. AAINC에 할당된 $3200의 가격은 샘플 값이며 실제 주식의 가격을 나타내지 않습니다.
OpenAI에서 로드된 주식 시장 어시스턴트 는 다음과 같은 명령어와 기능을 포함하고 있습니다.
You are a stock market assistant. When asked a question related to stocks use the function and get the stock price.
{ "name":"get_stock_price", "description":"Get the current stock price", "parameters":{ "type":"object", "properties":{ "symbol":{ "type":"string", "description":"The stock symbol" } }, "required":[ "symbol" ] } }
-
작업 창에서 JSON > 세션 시작 작업을 끌어서 Open AI: 어시스턴트 실행 작업 아래의 캔버스에 가져다 놓습니다.
-
데이터 소스 필드에서 텍스트를 선택하고
$str_Response$
을 입력합니다. -
JSON 객체 세션 필드에서 로컬 세션을 선택하고
Default
를 입력합니다.이제 전체 JSON을 확보했습니다. 다음 작업은 본문에서 필수 필드를 추출하는 것입니다. 다음 코드 조각은 샘플 JSON을 보여줍니다.{ "data":{ "thread_id":"thread_hiCr3najXMSxuuiIntJDXDXd", "tool_calls":[ { "id":"call_Beu0XFPGR91RZGoXBA8ODSke", "type":"function", "function":{ "name":"get_stock_price", "arguments":"{\n\"symbol\": \"AAINC\"\n}" } } ], "id":"run_LnR669bHLcMAaIGOcvIE0nVa" }, "status":"requires_action" }
주:tool_calls
및 OpenAI 어시스턴트 메시지 내의tool_outputs
는 사용자가 하나의 메시지에서 다수의 요청을 하는 시나리오를 처리할 수 있습니다. 예를 들어 AAINC와 BBINC의 주가를 함께 가져올 수 있습니다. 이 단일 메시지에는 사실 AAINC의 주가를 가져오는 것과 BBINC의 주가를 가져오는 두 가지 요청이 포함되어 있습니다. -
데이터 소스 필드에서 텍스트를 선택하고
-
JSON에서 필수 필드를 추출하여 OpenAI: 어시스턴트 함수 실행을 실행합니다.
- 작업 창에서 Json > 노드 값 가져오기 작업을 끌어다 Json > 노드 값 가져오기 작업 아래의 캔버스에 놓습니다. JSON: 노드 값 가져오기 작업에 대한 자세한 내용은 JSON에서 노드 값 가져오기 작업 항목에서 참조하십시오.
-
추출할 노드를 지정합니다. 예를 들어
thread_id
를 추출하려면data.thread_id
를 사용하면 됩니다. - 변수 thread_id를 만들고 이 변수에 출력을 할당하십시오.
-
마찬가지로
run_id
와call_id
(data.id
및data.tool_calls[0].id
)를 추출하여 변수 run_id 및 call_id에 저장합니다.
-
작업 창으로 이동하여 생성형 AI > OpenAI를 선택한 다음 OpenAI: 어시스턴트 함수 실행 작업을 끌어서 마지막 노드 값 가져오기 작업 아래에 배치합니다.
- Thread ID 필드에서 추출한 $thread_id$를 사용하십시오.
- 추출한 $run_id$를 실행 ID 필드에 사용하십시오.
-
아래의 표준 스키마를 사용하여 함수 응답을 정의합니다. 스키마는 OpenAI 어시스턴트가 사용하는 도구(함수)의 출력에 대한 정보를 담은 JSON 객체입니다.
{ "tool_outputs":[ { "tool_call_id":"Enter the call ID", "output":"{Enter your output}" } ] }
요청을 처리하고 적절한 함수를 실행한 후에는 그 결과를 OpenAI 어시스턴트 API에 다시 전달해야 합니다. 이렇게 하려면 위와 같이
tools output list
라는 특수 목록을 만들어야 합니다. 이 목록에는 다음과 같은 속성이 포함되어 있습니다.- tool_call_id (문자열): 이 속성에는 출력을 생성한 도구(함수)의 특정 호출에 대한 고유 식별자가 저장됩니다. 이 Id를 활용해 도구의 특정 실행 인스턴스를 추적하고 참조할 수 있습니다.
-
모든 출력: 이 속성에는 도구가 생성한 실제 출력 데이터가 저장됩니다. 출력 데이터 유형은 특정 도구와 그 목적에 따라 달라질 수 있습니다. 예를 들면 다음과 같은 데이터 유형이 존재할 수 있습니다.
- 문자열(예: 창작 글쓰기 기능으로 생성된 텍스트)
- 숫자(예: 계산 결과)
- 목록(예: 검색된 데이터 포인트 모음)
- 딕셔너리(예: 여러 값이 존재하는 복잡한 데이터 구조)
- 기타 유효한 JSON 데이터 유형
예를 들어 이 예시에서는 다음 JSON을 입력합니다.
{ "tool_outputs":[ { "tool_call_id":"$call_idquot;, "output":"{3200}" } ] }
- 현재 세션으로 제한하려면 세션 이름으로 Default를 입력합니다.
-
응답을 변수에 저장합니다. 이 예시에서 응답은 str_FunctionResponse라는 문자열 변수에 저장됩니다. 출력은 사용자가 요청한 값을 표시하는 JSON이며, 아래의 내용은 위의 실행에 대한 출력의 예시입니다.
:
{ "data":[ { "metadata":{ }, "role":"assistant", "content":[ { "type":"text", "text":{ "value":"The current stock price for AAINC is $3200.", "annotations":[ ] } } ] } ], "status":"completed" }}
OpenAI: 어시스턴트 실행 함수 작업은 OpenAI 어시스턴트의 작동 방식을 혁신하여, 이를 단순한 정보 제공자가 아니라 조치를 취하거나 요청을 이행할 수 있는 강력한 도구로 만듭니다. 이제 어시스턴트는 외부 기능을 활용해 복잡한 작업을 처리하고, 위의 예시와 같이 개인 맞춤형 추천을 제공하고, 궁극적으로는 더욱 포괄적이고 유용한 사용자 경험을 제공할 수 있습니다.