MS가 “사용자의 프롬프트를 분석해서 적절한 JSON 응답 포맷을 만들어 프롬프트에 포함시키는 라이브러리”인 TypeChat을 만들어서 오픈소스로 공개했습니다.
TypeChat은 사용자의 자연어 프롬프트를 분석해서 이를 애플리케이션이 이해할 수 있는 구조화된 데이터 형식, 즉 JSON으로 변환하는 라이브러리입니다. TypeScript의 타입 정의를 제공하면 LLM의 응답이 특정 타입에 맞는지 검증하고, 필요한 경우 수정하는 기능도 제공합니다 개발자는 AI가 반환하는 응답이 애플리케이션이 요구 사항을 정확하게 충족하는지 확인할 수 있습니다.
예를 들어, TypeChat을 사용하여 음식 주문 앱을 개발하는 경우를 상상해봅시다. 사용자가 "페퍼로니 피자 두 개와 콜라 한 병을 주세요"라는 자연어 명령을 입력했다고 가정합니다.
1. 프롬프트 분석: TypeChat은 사용자의 프롬프트를 분석합니다. 이 과정은 사용자가 주문하려는 항목의 이름("페퍼로니 피자", "콜라"), 수량("두 개", "한 병") 등의 정보를 파악하는 단계를 포함합니다.
2. LLM에게 프롬프트와 JSON 응답 포맷 전송: TypeChat은 사용자의 프롬프트와 함께 원하는 JSON 응답 포맷을 LLM(Large Language Model)에게 전송합니다. 응답 포맷을 아래와 같이 TypeScript 타입 정의로 표현할 수도 있습니다.
```
interface Response {
data: Array<{ item: string, quantity: number }>;
}
```
3. JSON 응답 수신: LLM은 사용자의 프롬프트를 처리하고, 원하는 형태의 JSON 응답을 생성하여 TypeChat에게 반환합니다. 이 JSON 응답은 주문 항목의 이름, 수량 정보를 포함합니다.
```
{
"orders": [
{
"item": "페퍼로니 피자",
"quantity": 2
},
{
"item": "콜라",
"quantity": 1
}
]
}
```
4. 애플리케이션 작업: 마지막으로, 애플리케이션은 이 JSON 응답을 사용하여 주문을 처리합니다. 이는 주문 항목을 데이터베이스에서 찾고, 주문 수량을 확인하고, 주문을 완료하는 등의 작업을 포함할 수 있습니다
이러한 방식으로, TypeChat을 이용해 프롬프트, LLM, 애플리케이션 사이를 더 자연스럽고 견고하게 연결할 수 있습니다.