제가 예전에 HuggingChat를 처음 소개하면서, Dynamic Prompt에 대해 이해가 살짝 부족하게 설명을 한 바 있었죠.
지금부터 이 Dynamic Prompt의 유용함을 소개해 드릴까 합니다.
이 기능을 통해 여러분은 주어진 API를 가지고 코드 연동 없이 원하는 정보를 LLM에게 추론시켜 원하는 정보를 이해하기 쉽게 가져올 수 있습니다.
LLM에게 별도로 인터넷 뒤질 필요 없이 말입니다.
지금 시작해 보도록 하겠습니다.
실습 환경 준비
허깅챗은 https://huggingface.co/chat/ 입니다. 클릭하고 로그인하면 됩니다.
네? 회원이 아니라고요? 회원 가입 안하고 뭐하세요? 얼른 가입하세요!
Assistants 를 클릭합니다.
Create New Assistant를 클릭합니다.
그럼 아래와 같이 팝업이 뜹니다.
자, 먼저 2가지를 체크하도록 하겠습니다.
Internet Access 는 Default로 체크합니다. 즉, 인터넷 접근을 AI에게 시키지 않습니다.
그리고 Dynamic Prompt에 체크합니다.
Name과 Description 을 원하는 대로 입력합니다.
이제 Instruction 에 이 Dynamic Prompt를 어떻게 활용하 느냐 지금부터 시작하겠습니다.
지침 작성하기
침 꿀꺽 삼키셨나요? 네. 저는 침이 고여서 꿀꺽 했습니다. 긴장할 필요 없어요. 그렇게 어렵지 않습니다.
물론 어느정도의 영어실력이 있다면 더 정확한 지침을 통해 더 원하는 결과를 도출할 수 있습니다.
하지만 영어가 자신없다 해도 CommandRPlus 모델은 한글 지침을 어느정도 잘 듣습니다.
저는 간단한 영어로 지침을 작성하도록 하겠습니다.
You are 'HuggingFace Space Assistant', an expert in the HuggingFace ecosystem. Your primary function is to provide detailed, accurate, and helpful information on HuggingFace's spaces. You should offer assistance of spaces infomation from data below:
```json
{{url=https://huggingface.co/api/spaces?sort=likes&direction=-1&limit=50}}
```
and give your predicted simple information.
The title should add a link as rendered markdown with format:
```markdown
[{id}](https://huggingface.co/spaces/{id})
```
여기서 중괄호 2개 감싼 부분, 이 부분이 매우 중요합니다.
이 중괄호 규칙을 지키면, Instructions 타이틀 오른쪽에 파란 글씨로 x template variable 이라는 문구가 생깁니다. 당연히 템플릿은 여러개 쓸 수 있습니다.
이제 저의 지침을 설명하겠습니다.
저는 Hugging Face API를 사용하여 여러분이 AI 모델을 체험할 수 있는 Space 를 간단하게 추천받기 위한 지침을 예시로 작성했습니다. Hugging Face API에서 모델, 데이터셋, 스페이스 등을 API를 통해 검색할 수 있도록 지원하고 있습니다.
Hub API Endpoints여기에 Markdown이나 HTML, XML, LaTeX 등 마크업을 활용하여 지침을 작성하시면, LLM 모델은 이 지침을 어떻게 활용할지 더 빠르고 정확하게 이해할 수 있습니다. 따라서 마크업의 기본은 꼭 알아두시기 바랍니다.
Hugging Face API는 기본적으로 JSON 형식으로 제공합니다. 따라서 아래처럼,
```json
{{url=https://huggingface.co/api/spaces?sort=likes&direction=-1&limit=50}}
```
형식을 명시하면 모델이 바로 인식하고 분석합니다.
만약 XML 형식이라면, 아래처럼 하면 되고요, 주로 국내 공공데이터에서 XML 형식으로 제공하죠.
```xml
{{url=https://open.data.go.kr/api/path/to/information}}
```
위는 예시이며 실제로 동작하지 않으니 참고 바랍니다.
HuggingFace API는 Playground 기능을 제공합니다. 따라서 API 명세 문서에 너무 얽매이지 말고, 테스트가 가능합니다.
- Hub API Playground - - a Hugging Face Space by enzostvs심지어 API Playground도 Space 입니다… 어쨌든, 저는 이 API로 인기 Space 목록을 50개 불러와서 테스트하도록 하겠습니다.
거기에 더해, 편의성을 하나 추가했는데요, Space ID에 링크를 붙이도록 지시했습니다.
The title should add a link as rendered markdown with format:
```markdown
[{id}](https://huggingface.co/spaces/{id})
```
중괄호로 감싸 id를 가져와 대입시키는 식입니다. API Playground 에서 어떤 정보를 가져오는지 인지를 해야겠죠…
그래서 개발만 안할 뿐이지 이런 류의 데이터 접근이 어려우신 분들도 있습니다. 그런 분들 위해 후술할 링크를 통해 갖고놀 수 있도록 준비했으니 걱정 마시고 따라오면 됩니다.
어쨌든 이렇게 어시스턴트를 완성했습니다.
Hugging Face Space Assistant - HuggingChat기술적 접근이 어려우신 분들은 위 링크를 누른 뒤, 후술할 내용을 따라하시면 됩니다.
채팅 시작!
저는 최대한 간단하게 지침을 작성해서 테스트 했습니다.
API의 경우, Like 순이 많은 것부터 시작해서 50개 가져오도록 API를 구성한 뒤 지침에 적용하여 AI가 활용하도록 했습니다.
그러면 이 동적 프롬프트 지침의 기능이 언제 적용되느냐, 바로 채팅이 시작할 때 적용됩니다.
그럼 간단한 영어로 시작하겠습니다.
Give me 5 spaces
막연하게 영어로 5개 스페이스 목록 달라고 했습니다.
줬습니다.
Command R Plus는 한글 프롬프트도 잘 인식합니다. 그래서 한글로도 해봤습니다.
이번엔 간단한 조건 하나 줘봤습니다.
네가 알고 있는 그림 기반 Space 5개만 말해 줘.
이렇게 인기있는 그림 기반의 스페이스 체험관 5개를 나열해 줬습니다.
그것도 모자라 타이틀을 클릭하면 해당 Space로 이동할 수 있는 편리함까지 주었습니다.
마치며
Dynamic Prompt 기능은 URL 상에 있는 텍스트 데이터를 가져와서 분석시키고, 원하는 정보로 가공해서 여러분이 원하는 정보를 얻을 수 있는 강력한 기능입니다.
왠만한 Text 라면 지원됩니다. 엑셀 같은 경우 CSV로 저장한 다음 주입시킬 수 있고,
채팅할 때마다 URL 주소 데이터가 갱신되는 이점을 활용하여, 아래처럼 최신 환율 정보를 활용하여 환율 계산기 어시스턴트를 만들 수 있습니다!
Currency Assistant - HuggingChat음… 한글로 프롬프트 짜도 영어로 나오지만, 어렵지 않게 달러로 얼마인지 이해할 수 있으니(날짜는 어쩔)
이정도면 되지 않겠습니까.
이런 기능은 ChatGPT보다 어찌보면 편리할 수 있습니다. 공개된 정보를 토대로 무료로 LLM을 활용하여 원하는 정보를 얻을 수 있는 Hugging Face Chat를 이용해 보시기 바랍니다.
마지막으로 주의사항 하나를 말씀드리죠. 어시스턴트 기능은 GPTs와 다르게 무조건 공개됩니다.
따라서 어시스턴트 내용에 개인정보나 민감한 비밀번호 등의 정보를 넣지 않도록 주의하시면 됩니다.
이건 제가 처음 소개했을 때도 언급했던 내용입니다. 혹시 못 보신분들을 위해 재방송 드립니다.
감사합니다.