OpenAI: 어시스턴트 실행 함수 작업

OpenAI: 어시스턴트 실행 함수 동작을 활용하면 OpenAI 어시스턴트의 기능을 새로운 차원으로 끌어올릴 수 있습니다. 이는 OpenAI 어시스턴트 API를 활용하여 어시스턴트가 대화 중에 외부 기능을 호출할 수 있게 적극적으로 지원합니다. 이 기능은 어시스턴트를 방대한 추가 기능의 도구 상자에 적극적으로 연결하는 가교 역할을 합니다.

전제 조건

  • 자동화에서 OpenAI 어시스턴스 실행 함수 작업을 사용하려면 Bot creator 역할을 보유해야 합니다.
  • 요청을 보내는 데 필요한 자격증명을 보유하고 OpenAI 작업을 호출하기 전에 인증 작업을 포함했는지 확인하십시오.
  • OpenAI: 어시스턴트 실행 작업OpenAI 어시스턴트 실행 함수를 호출하기 전에 보유하고 있어야 합니다.

이 예시에서는 어시스턴트의 기능을 확장하는 OpenAI 어시스턴트 실행 함수 사용에 대해 자세히 설명합니다. 실행 환경 내에서 기존 어시스턴트를 호출하고, 중요한 정보(Thread ID, Call ID, Run ID)를 추출하고, 이러한 ID를 활용해서 맞춤형 함수 응답을 정의하는 방법을 살펴봅시다. 예를 들어, 여기에는 주식 시장 어시스턴트가 로드되며 tools output list(함수 응답)을 사용해 함수 결과가 정의됩니다.

프로시저

  1. Automation Anywhere Control Room에서 작업 창으로 이동하여 생성형 AI > OpenAI를 선택하고 인증 작업을 드래그하여 캔버스에 놓습니다. 인증하려면 API 키가 필요합니다. API 키 생성 및 인증에 대한 자세한 내용은 인증 작업 항목에서 참조하십시오.OpenAI: 어시스턴트 실행 함수
  2. 인증 작업 아래에 Open AI: 어시스턴트 작업 실행을 배치하고 어시스턴트 로드를 사용해서 어시스턴트를 로드합니다(주식 시장 어시스턴트). 메시지를 입력합니다(AAINC의 주가 가져오기). 응답은 문자열 변수 str_Response에 저장됩니다. Open AI: 어시스턴트 작업 실행에 대한 자세한 내용은 OpenAI: 어시스턴트 실행 작업 항목에서 참조하십시오.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"
          ]
       }
    }
  3. 작업 창에서 JSON > 세션 시작 작업을 끌어서 Open AI: 어시스턴트 실행 작업 아래의 캔버스에 가져다 놓습니다.
    1. 데이터 소스 필드에서 텍스트를 선택하고 $str_Response$을 입력합니다.
    2. JSON 객체 세션 필드에서 로컬 세션을 선택하고 Default를 입력합니다.
      JSON 디코딩
      이제 전체 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_callsOpenAI 어시스턴트 메시지 내의 tool_outputs는 사용자가 하나의 메시지에서 다수의 요청을 하는 시나리오를 처리할 수 있습니다. 예를 들어 AAINC와 BBINC의 주가를 함께 가져올 수 있습니다. 이 단일 메시지에는 사실 AAINC의 주가를 가져오는 것과 BBINC의 주가를 가져오는 두 가지 요청이 포함되어 있습니다.
  4. JSON에서 필수 필드를 추출하여 OpenAI: 어시스턴트 함수 실행을 실행합니다.
    1. 작업 창에서 Json > 노드 값 가져오기 작업을 끌어다 Json > 노드 값 가져오기 작업 아래의 캔버스에 놓습니다. JSON: 노드 값 가져오기 작업에 대한 자세한 내용은 JSON에서 노드 값 가져오기 작업 항목에서 참조하십시오.
    2. 추출할 노드를 지정합니다. 예를 들어 thread_id를 추출하려면 data.thread_id를 사용하면 됩니다.
    3. 변수 thread_id를 만들고 이 변수에 출력을 할당하십시오.
    4. 마찬가지로 run_idcall_id(data.iddata.tool_calls[0].id)를 추출하여 변수 run_idcall_id에 저장합니다.
  5. 작업 창으로 이동하여 생성형 AI > OpenAI를 선택한 다음 OpenAI: 어시스턴트 함수 실행 작업을 끌어서 마지막 노드 값 가져오기 작업 아래에 배치합니다.
    1. Thread ID 필드에서 추출한 $thread_id$를 사용하십시오.
    2. 추출한 $run_id$실행 ID 필드에 사용하십시오.
    3. 아래의 표준 스키마를 사용하여 함수 응답을 정의합니다. 스키마는 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_id
      quot;, "output":"{3200}" } ] }
    4. 현재 세션으로 제한하려면 세션 이름으로 Default를 입력합니다.
    5. 응답을 변수에 저장합니다. 이 예시에서 응답은 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 어시스턴트의 작동 방식을 혁신하여, 이를 단순한 정보 제공자가 아니라 조치를 취하거나 요청을 이행할 수 있는 강력한 도구로 만듭니다. 이제 어시스턴트는 외부 기능을 활용해 복잡한 작업을 처리하고, 위의 예시와 같이 개인 맞춤형 추천을 제공하고, 궁극적으로는 더욱 포괄적이고 유용한 사용자 경험을 제공할 수 있습니다.