1. 🤖 에이전틱 AI 서비스의 산업화
에이전틱 AI 서비스의 산업화를 위해서는 생산으로의 전환에 필요한 요구사항과 청사진이 중요하다 11.
AI 기술은 우리의 삶을 변화시키고 있으며, AI 어시스턴트는 자연어를 이해하고 대화형으로 작업을 해결하는 역할을 한다 15.
LLM(대형 언어 모델)은 정적인 일반 지식을 가지고 있으며, 상태가 없고 비결정적이어서 세션 대화 기록을 유지할 수 없다 20.
2. 🤖 에이전틱 서비스의 구조와 필수 요소
에이전틱 서비스는 LLM의 상태성을 추가하여 대화 세션을 관리하고, 실패를 포용하는 특성을 가져야 한다. 이는 비결정론적인 루프에서 발생할 수 있는 실패를 수용해야 함을 의미한다. 29
일반적인 패턴으로는 검색 기반 생성(RAG)이 있으며, 이는 LLM과 추가 정보를 검색하는 기능을 결합하여 대화의 상태를 관리한다. 35
워크플로우는 정적이며 LLM이 비즈니스 프로세스를 오케스트레이션하지 않을 때 사용되는 패턴이고, 에이전트는 완전한 동적성을 갖추어 LLM이 오케스트레이션을 정의한다. 37
에이전트 라이프사이클을 관리하기 위해서는 이벤트 기반 패턴을 구현해야 하며, 이는 대화식 시스템의 특성을 반영해야 한다. 53
메모리 데이터베이스는 대화의 상태를 유지하기 위해 필요하며, 세션별로 데이터를 파티션하여 저장할 수 있는 방법이 필요하다. 이는 서비스의 생산 품질을 보장하는 데 중요하다. 72
3. 🛠️ 내구성 실행 및 분산 시스템 구현
10년 이상 내구성 실행과 대규모 분산 시스템구현에 중점을 두고 있으며, 이는 기업의 비즈니스 모델에 실패를 포함하는 관점을 채택하게 한다 78.
개발자에게 제공되는 SDK는 여섯 개의 높은 수준의 구성 요소를 포함하여 복잡한 아키텍처 패턴을 구축할 수 있게 해준다 84.
워크플로우 단계를 통해 신뢰성 있는 실행과 상태 복원(point-in-time recovery) 기능을 제공하며, 이는 실패 시 자동으로 복구된다 88.
장기 실행 및 시간 초과와 같은 기능을 갖춘 타이머, HTTP 및 gRPC로 데이터 스트리밍을 위한 엔드포인트, 그리고 다양한 속성으로 메모리를 쿼리할 수 있는 뷰도 지원한다 92.
개발자는 로컬 샌드박스 환경에서 이 도구들을 실험하고 디버그할 수 있으며, 배포는 자동화된 환경, 서버리스 환경 또는 자체 호스팅 방식으로 가능하다 95.
4. 🤖 AI 서비스 자동화 흐름 설계
사용자의 확인 요청 후, LLM은 작업 완료 시 시스템에 보고서를 반환하여 프로세스를 자동화할 수 있다. 141
워크플로우에는 대화 단계를 저장하고, 프롬프트를 저장하는 메모리 데이터베이스와 api 통합을 위한 도구가 포함된다. 146
각 사건에 대한 자동화된 워크플로우는 LLM의 요청에 따라 필요한 통합 단계를 실행하고, 성공적인 작업 완료 후 보고서를 생성한다. 149
LLM은 각 요청에 대해 실행 도구를 지정하고, 해당 도구의 워크플로우를 통해 정보를 수집하고 업데이트할 수 있다. 155
코드 구현은 각 단계의 정의와 함께 오류 처리 및 인간 개입 옵션을 포함하여 비즈니스 로직을 모델링하고 비즈니스에 맞춰 확장 가능성을 제공한다. 186
5. 🚀 AI 서비스 워크플로우 및 사용 사례
다양한 워크플로우를 구성하여 API 호출, 메시지 브로커통신, LLM(대규모 언어 모델)과의 연계 등을 유연하게 처리할 수 있다 207.
특정 정보에 대한 비공식적인 챗봇 시스템을 구축하기 위해, 내부 데이터베이스와 대화 기록을 제공해야 한다 220.
대화형 시스템 프롬프트를 사용하여 사용자 질문에 대한 응답을 진행하며, 필요한 경우 "죄송합니다, 도와드릴 수 없습니다."라는 표준 응답으로 대체할 수 있다 229.
귀하의 시스템 요구를 충족시키기 위해, 데이터를 임베딩하고 상태 변화를 관리하는 과정을 자동화해야 한다 231.
라이브 스트리밍 영상에서 미국 수화 인식을 담당하며, 시스템 프롬프트를 통해 올바른 수화 여부를 실시간으로 확인하고 피드백을 받을 수 있다 271.
5.1. ️ 도구 구현을 위한 워크플로우 설명
도구를 구현하기 위한 워크플로우의 예시가 제공된다. [206]
다양한 호출을 정의하여 정보를 API나 메시지 브로커로 전송하고, 관찰 결과를 초기 워크플로우로 다시 업데이트하는 과정이 설명된다. [207]
소비자와 생산자를 구현하는 두 가지 방법이 있으며, 메시지 브로커와의 연결이 용이하다고 언급된다. [211]
특정 인스턴스 ID에 대한 새로운 워크플로우가 생성되고, 이 워크플로우가 시작되는 과정이 강조된다. [213]
시스템에 정보를 되돌려 보내기 위해서는 상태 변화를 메시지로 변환하는 생산자가 필요하다. [214]
5.2. 챗봇 어시스턴트 구현 사례
특정 콘텐츠를 통한 챗봇 어시스턴트 구축 사례를 다룬다. 이 경우, 공공 정보 대신 비공식 정보를 사용하여 오픈 정보를 제공하지 않아야 한다. [218]
사용자 요청에 따라 문서에서 정보를 검색하기 위해서는 전문적 데이터베이스와 대화 기록을 포함한 자원을 제공해야 하며, 이에 대한 시스템 프롬프트가 필요하다. [225]
임베딩을 통해 프롬프트를 향상시키고, 사용자의 요청을 수용할 수 있는 에이전트를 구축하여 산출과 리턴을 관리한다. [230]
각 세션에 대해 인메모리 데이터베이스 인스턴스를 유지하고, 요청 및 응답을 스트리밍할 수 있는 HTTP 스트리밍 엔드포인트를 설정한다. [237]
구축한 챗봇 'Ask AKA'를 통해 정보 검색을 수행하는 실습을 진행하며, 제한된 정보에 대한 요청이 있을 경우 적절한 응답을 제공하기 어려운 상황을 시뮬레이션한다. [240]
5.3. ️ 파일 처리 및 대화 저장 흐름
복잡성이 증가함에 따라, 다양한 자원과의 통합을 관리하는 단계가 필요하다. [249]
파일을 나열하고 임베딩을 수행하는 단계를 구현하여 다양한 파일을 처리한다. [250]
호출을 격리하여, 실패 발생 시 다른 전환을 수행할 수 있는 구조를 마련한다. [253]
임베딩 과정에서는 벡터 데이터베이스와 같은 다양한 도구를 활용할 수 있다. [254]
실패 시에는 파일 목록을 재시도하여 또 다른 단계를 진행할 수 있다. [255]
5.4. 실시간 비디오 및 ASL 인식 시스템
실시간 비디오 스트리밍을 통해 미국 수화(ASL) 인식을 수행하고자 한다. [270]
Gemini LLM을 활용하여 수화 인식을 진행하며, 시스템 프롬프트를 통해 사용자에게하는 질문을 보정한다. [272]
시스템 프롬프트는 대화 기록 대신 저장되며, LLM과의 상호작용을 위해 gRPC 스트림을 사용한다. [278]
비디오 스트리밍 중 사용자가 수화 문자를 질문하면 시스템이 그에 대한 응답을 제공하는 방식으로 작동한다. [288]
요청 처리 속도가 느릴 수 있으므로 백프레셔를 적용하여 요청을 효율적으로 관리해야 한다. [292]
5.5. AI 패턴 구현을 위한 플랫폼 개발 요약
프로덕션 그레이드 플랫폼이 필요하며, AI 패턴을 구현하기 위해 서로 다른 도구를 사용할 수 있어야 한다. [301]
실패를 수용하고, 실패를 모델링해야 하며, 플랫폼이 해결해야 할 회복력의 수준을 고려해야 한다. [304]
24-48시간 내에 개념 증명을 제공하며, 흥미로운 사례가 있다면 연락하라고 권장한다. [307]
백프레셔는 사용하는 스트리밍 라이브러리 내에서 구축되며, 여러 상태 기반 클라이언트를 통해 요청을 큐잉할 수 있다. [312]
LLM이 응답을 바탕으로 호출해야 할 도구를 오케스트레이션하며, 이를 통해 동적 실행이 가능하다. [347]