1. 프로토타입 구성도
2. 사용 기술
Client - 카카오톡 오픈 채널 활용
Server - GCP
- n1-standard-8 (vCPU 8개, 메모리 30GB),
- c0-deeplearning-common-cu121-v20241118-debian-11
- 1xNVIDIA T4
웹서버 - FAST API
LLM - MLP-KTLim/llama-3-Korean-Bllossom-8B-gguf-Q4_K_M
MCP server - https://github.com/isnow890/naver-search-mcp
외부 Data - Naver news
3. 핵심 메커니즘
1. 카카오톡 사용자의 오픈 채널을 통해 뉴스 정보 요청 - 임시 응답
2. 웹 서버에서 요청 "내용" 파싱
{'bot': {'id': 'ididididid', 'name': '나만의 주식'}, 'intent': {'id': 'ididididid', 'name': '폴백 블록', 'extra': {'reason': {'code': 1, 'message': 'OK'}}}, 'action': {'id': 'ididididid', 'name': 'Ollama 호출 ', 'params': {}, 'detailParams': {}, 'clientExtra': {}}, 'userRequest': {'block': {'id': 'ididididid', 'name': '폴백 블록'}, 'user': {'id': 'ididididid', 'type': 'botUserKey', 'properties': {'botUserKey': 'ididididid', 'isFriend': True, 'plusfriendUserKey': 'ididididid', 'bot_user_key': 'ididididid', 'plusfriend_user_key': 'ididididid'}}, 'utterance': '오늘 가장 큰 이슈 알려줘', 'params': {'surface': 'Kakaotalk.plusfriend'}, 'callbackUrl': 'your URL', 'lang': 'ko', 'timezone': 'Asia/Seoul'}, 'contexts': [], 'flow': {'lastBlock': {'id': 'ididididid', 'name': '폴백 블록'}, 'trigger': {'type': 'TEXT_INPUT'}}}
3. 파싱 된 "내용"을 mcp 서버에 전달
Starting MCP server initialization... process.argv: [ '/opt/conda/bin/node', '/home/ansgyqja/naver-search-mcp/dist/src/index.js' ] import.meta.url: file:///home/ansgyqja/naver-search-mcp/dist/src/index.js isMainModule: true Running as main module, starting server... Starting Naver Search MCP Server... Environment variables: { NAVER_CLIENT_ID: '[20 chars]', NAVER_CLIENT_SECRET: '[10 chars]' } Config loaded successfully Config validated successfully Server factory created Transport created, connecting... Server connected and running search_news called with args: { "query": "오늘 가장 큰 이슈 알려줘", "display": 100, "start": 1, "sort": "date" }
4. mcp 서버에서 네이버 뉴스에 "내용" 요청
{ "query": "오늘 가장 큰 이슈 알려줘", "display": 100, "start": 1, "sort": "date" }
5. 네이버 뉴스에서 응답
{
"lastBuildDate": "Mon, 08 Sep 2025 22:01:48 +0900",
"total": 880,
"start": 1,
"display": 100,
"items": [
{ "title": "[뉴공 아카이브]홍사훈 기자· 홍사훈쑈 진행자, 주진우 기자· 주기자라...", "originallink": "http://www.ddanzi.com/851620952", "link": "http://www.ddanzi.com/851620952", "description": "김건희가.▷주진우 : 김건희가 <b>가장</b> 관심이 있었던 회사로 체크하던 회사예요.▶김어준 : 아, 이 회사들이?▷주진우 : 사법리스크가 생기고 검찰의 수사를 받고 이 회사하고 효성 형제의 난.▶김어준 : 그러면 그거를 <b>알려</b>면... ", "pubDate": "Tue, 15 Jul 2025 12:50:00 +0900" },,{.....}
]
}
6. 카카오톡 callback
3. 현재 이슈
1. mcp 서버에서 요청한 데이터가 요약된 데이터로 답변으로 받아 정보가 부족함
2. qeury 품질에 따른 성능 차이 발생
2. 어떠한 이슈에대해 지속적 질의 및 응답 이어가는 형태가 되지 못함
4. 해결방안
1. 최근 뉴스에 대한 원본데이터 지속적 수집하여 응답 데이터 성능 향상 필요 ==> 링크 원문 접속하여 bs4 로 파싱 수행 뉴스 원문 확보 > 질의의 따라 퀄리티가 상승하였음
2. Query Reformulation 수행 => query 가 풍부해지며 키워드가 추가됨
reformulation_template="""
다음 질문을 검색 성능을 향상시키기 위해 다시 작성해주세요:
[질문]
{question}
다음 방식으로 질문을 재작성하세요:
1. 동의어 추가
2. 더 구체적인 키워드 포함
3. 관련된 개념 확장
4. 구글 검색어 스타일 적용
재작성된 답변을 사용하여 반드시 하나의 질문 형태로 출력하시오:
반드시 "[최종 질문]" 로 시작해서 출력하시오!:
[최종 질문]
"""
3. 질의한 내용에 대한 추가 질의시 적절한 답변 생상 메커니즘 추가
5. 결론
1. 프로토타입 구성의 메커니즘 개발 구현, 가능성 확인
2.이슈 해결 및 성능 개선 작업 필요
3. 랭그래프 활용 RAG, MCP등 다양한 도구 동적 활용