마치 치트키 같은 방법을 우현히 찾아냈습니다.
프롬프트 엔지리어링 분들의 프롬프트를 보게 되면
{ } 중괄호가 있고 알수없는 명령문과 API가 있죠.
물론 여러분은 알수 있겠지만, 영어를 잘 못하는 전 잘 몰랐죠.
음 대충 알아봤는데.. 일단 중괄호는 예전에 알아본거라 캡쳐 없고요.
그냥 요기서 요기까지는 하나다 이런 뜻 이래요.
요건 챗봇 대화를 자동으로 기록하고 추가정보란에 스스로 저장해주는겁니다.
이런걸 꼬아서 프롬프트 를 만들어서 나만의 캐릭터 챗봇에 사용하면 데이터를 다 기억하면서 전화할수 없습니다.
단점으로 말할거 같으면 데이터 저장할수 있는 공간이 무제한은 아니기 때문에 몇일 분량으로 저장될지 모르겠어요. 업무용으로 쓰시는 분들께 엄청 좋은 정보같아요.
다만 이러한 프롬프트를 활용하는거 또한 고수분들에 피드백이 있어야할거 같아요.
GPT 추론능력을 넣은 챗봇을 만들어서 나의업무의 성장을 많이 도울거라고 생각합니다.
프롬프트 엔지니어링 관점에서 NoSQL 데이터베이스를 이용해 대화 내용을 저장하고 불러오기 위한 프롬프트를 구성하는 것은 고유한 요구 사항과 구조에 따라 다를 수 있습니다. NoSQL 데이터베이스는 스키마가 없거나 유연한 스키마를 가지고 있어, 다양한 형태의 데이터를 저장할 수 있는 장점이 있습니다. 일반적으로 문서 기반의 데이터베이스(예: MongoDB), 키-값 저장소(예: Redis), 열 가족 데이터베이스(예: Cassandra) 등이 있습니다.
여기서는 문서 기반의 NoSQL 데이터베이스인 MongoDB를 예로 들어 설명하겠습니다.
### 대화 저장하기
1. **대화 초기화**:
- 사용자와의 새로운 대화 세션을 시작할 때, 새로운 문서를 생성합니다. 문서에는 대화 ID, 사용자 ID, 시작 시간 등의 초기 정보를 저장합니다.
```json
{
"conversation_id": "unique_conversation_id",
"user_id": "user_123",
"start_time": "2024-03-26T10:00:00Z",
"messages": []
}
```
2. **메시지 추가**:
- 대화 중에 사용자나 챗봇의 메시지를 문서에 추가합니다. 각 메시지는 발신자, 메시지 내용, 시간 등의 정보를 포함할 수 있습니다.
```json
{
"$push": {
"messages": {
"sender": "user",
"message": "안녕하세요, 챗봇입니다.",
"time": "2024-03-26T10:01:00Z"
}
}
}
```
### 대화 불러오기
- 특정 사용자의 마지막 대화나 특정 조건을 만족하는 대화를 검색할 수 있습니다. 예를 들어, 사용자 ID로 최근 대화를 불러오는 쿼리는 다음과 같습니다.
```json
{
"user_id": "user_123"
}
```
- 정렬, 제한, 프로젝션 등의 옵션을 사용하여 필요한 정보만 효율적으로 불러올 수 있습니다.
### 프롬프트 작성 시 고려 사항
- **데이터 구조**:
- 대화의 구조를 고려하여 문서를 설계합니다. 대화마다 고유 ID를 부여하고, 사용자와 챗봇의 메시지를 배열로 관리하는 것이 유용할 수 있습니다.
- **성능 최적화**:
- 대화가 길어질 경우, 문서의 크기가 커질 수 있으므로 성능에 영향을 줄 수 있습니다. 필요에 따라 적절한 샤딩 전략이나 인덱싱을 고려해야 합니다.
- **보안 및 개인정보 보호**:
- 사용자의 대화 데이터를 저장할 때는 개인정보 보호 법률을 준수하고, 필요한 보안 조치를 취해야 합니다.
이러한 접근 방식은 기본적인 예시이며, 실제 응용 프로그램에서는 특정 요구 사항에 맞게 조정될 필요가 있습니다.