여러 줄 주석이 설명보다 경위(예전·실측·지적)를 적고 있어 읽는 사람이 결론을 찾기 어려웠다. - ts·tsx·js·mjs·css·py 478개: 여러 줄 주석은 첫 문장 한 줄로, 과거형·날짜 문장은 삭제 - 주석 위치는 TypeScript 파서·파이썬 tokenize/ast 로 찾는다 — 문자열 안의 # · /* 는 건드리지 않는다 - eslint·ts·noqa·type: ignore 같은 지시 주석은 그대로 둔다 파이썬 275개 정리 전후 AST 동일, TS 298개 주석 뺀 토큰 동일(빈 JSX 주석 10곳만 차이). site·frontend·admin tsc, site vitest 105 passed Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
40 lines
2.0 KiB
Python
40 lines
2.0 KiB
Python
"""업소 조사 프롬프트 — 소개문을 쓸 **근거**를 공개 웹에서 찾아온다."""
|
|
|
|
SYSTEM_PROMPT = (
|
|
"당신은 지역 업소를 조사하는 사람이다. 웹에서 확인되는 사실만 적는다. "
|
|
"확인되지 않으면 그 항목을 아예 빼라 — 추측하거나 일반론으로 채우지 마라. "
|
|
"출력은 JSON 하나뿐이고 코드펜스를 두르지 않는다."
|
|
)
|
|
|
|
# 최대 개수를 둔다.
|
|
MAX_ITEMS = 8
|
|
|
|
|
|
def build_prompt(name: str, address: str, category_label: str) -> str:
|
|
"""조사 프롬프트."""
|
|
return f"""다음 업소에 대해 웹에서 확인되는 사실을 모아라.
|
|
|
|
상호: {name}
|
|
주소: {address}
|
|
업종: {category_label}
|
|
|
|
[무엇을 찾나]
|
|
- 이 업소만의 특징: 건물의 내력·연식, 공간 구성, 주변 랜드마크와의 관계, 운영 방식
|
|
- 손님이 실제로 겪는 것: 어떤 사람이 어떤 목적으로 오는가, 무엇이 인상적이라고 말하는가
|
|
- 시기: 문을 연 때, 고쳐 지은 때
|
|
|
|
[적지 않을 것]
|
|
- 요금·객실 수·체크인 시각·취소 규정 — 이건 다른 경로로 확인한다. 옛 값이 섞이면 위험하다
|
|
- "아름다운", "최고의" 같은 형용사만 있는 문장
|
|
- 다른 업소 이야기. 상호와 주소가 위와 일치하는 곳만이다
|
|
|
|
[문장 쓰는 법]
|
|
- **각 문장에 업소 이름을 넣어라.** "이 숙소는…" 처럼 쓰지 마라 — 문장만 떼어 놔도 어느
|
|
업소 이야기인지 알 수 있어야 한다. 뒤에서 이 문장들만 모아 근거로 쓰기 때문이다.
|
|
- 한 문장에 사실 하나. 두 가지를 이어 붙이면 한쪽이 틀렸을 때 통째로 버리게 된다.
|
|
|
|
[형식] 아래 JSON 만 출력한다. 각 항목에 **그 사실이 적힌 페이지 주소**를 단다.
|
|
{{"items": [{{"text": "한 문장으로 적은 사실", "source": {{"name": "출처 이름", "url": "https://..."}}}}]}}
|
|
|
|
항목은 최대 {MAX_ITEMS}개. 출처를 댈 수 없는 항목은 넣지 마라 — 적게 주는 편이 낫다."""
|