getAuthorDetail
ChatGPTSTEP 2 of the two-step person lookup (searchAuthors → getAuthorDetail). Returns one person's full profile: birth/death, birthplace, debut, biography, education, career, awards, and major works. PRECONDITION — do not call this tool unless BOTH are true: 1. searchAuthors has already run and returned the person, so you have their real chrcCode 2. The user has confirmed that this is the person they meant Never invent or guess a chrcCode, and never carry one over from a different name. If you do not have a confirmed chrcCode, call searchAuthors first and ask the user which person they meant — the list search matches names by substring, so same-name people are common. Typical flow: - User: "한강 작가 알려줘" → searchAuthors(searchText: "한강") - You: "『소년이 온다』를 쓴 한강 작가가 맞을까요?" - User: "응 맞아" → getAuthorDetail(chrcCode: "1000646901")
getBestsellers
ChatGPTOne of three book-recommendation tools, in priority order (getKeywordBookList / searchBooks / getBestsellers). Use THIS tool for broad, general bestseller requests: either an unqualified "recommend me a book" with no specific angle, or a request that clearly matches one of the top-level categories below. This is also the default fallback whenever the request is too vague for the other two tools. When to use this tool: - "recommend a good book", "아무거나 추천해줘", "read anything good lately?" → TOT (all) - "popular novels these days" → 01 (Fiction) - "trending business books" → 13 (Business) - "best self-help books" → 15 (Self-help) - "popular books for kids" → 42 (Children) Use getKeywordBookList instead when the request reduces to a single mood/season/genre/occasion keyword (e.g. "여름", "공포", "힐링", "추리", "크리스마스", "설렘", "인생책") — it queries curated editorial tags and returns more relevant picks than a category ranking would. Use searchBooks instead for a specific book title/author, or a descriptive request that needs more than one concept and doesn't map to a category or a single keyword (e.g. "이직 준비할 때 읽으면 좋은 책", "부모님 선물용 자기계발서"). Category codes (top-level only): TOT=All, 01=Fiction, 03=Poetry/Essay, 05=Humanities, 07=Family/Parenting, 08=Cooking, 09=Health, 11=Hobby/Sports, 13=Business/Economics, 15=Self-help, 17=Politics/Society, 19=History/Culture, 21=Religion, 23=Arts/Pop-culture, 25=Middle-High-school, 26=Engineering, 27=Foreign-language, 29=Science, 31=Exam-prep, 32=Travel, 33=IT/Computer, 35=Magazine, 38=Youth, 39=Elementary, 41=Infant(0-7), 42=Children, 47=Comics, 50=University, 53=Korea-intro, 59=Kyobo-original. Rules: - If user intent matches a top-level category above → use this tool with that code - If uncertain, too broad, or no specific angle at all → default to TOT - If user mentions a specific date/period → set ymw param ymw format: monthly YYYYMM (e.g. 202607), weekly/daily YYYYMMDD (e.g. 20260727) IMPORTANT — daily (period=001) ranking availability: the API has NOT finished aggregating the current day's ranking yet, so setting ymw to TODAY'S date always returns an empty result. "오늘/today's bestseller"-style requests with no explicit date do NOT mean "set ymw to today" — omit ymw entirely instead, which returns the latest finalized ranking (normally the previous day's). Only set ymw explicitly to a past date (YYYYMMDD) when the user names a specific day (e.g. "어제", "지난 화요일", or an explicit date) — and never to today's date.
getKeywordBookList
ChatGPTOne of three book-recommendation tools, in priority order (getKeywordBookList / searchBooks / getBestsellers). This is the PREFERRED, first-choice tool whenever the user's request reduces to a single Korean keyword or short tag describing a mood, season, genre, or occasion — this covers most "recommend a book about/for X" style requests. It queries curated editorial keyword tags (hand-assigned per book), so it surfaces more thematically relevant picks than plain text search. Example keyword categories: - Season/occasion: 여름, 겨울, 봄, 가을, 크리스마스, 여름휴가, 연말 - Mood/emotion: 힐링, 위로, 설렘, 웃음, 눈물, 감동 - Genre: 공포, 추리, 판타지, 로맨스, SF, 스릴러 - Other: 인생책, 자기계발, 육아 Examples: - "여름에 어울리는 책" → keyword: "여름" - "공포 분위기 책 추천해줘" → keyword: "공포" - "힐링되는 책 읽고 싶어" → keyword: "힐링" - "추리소설 추천" → keyword: "추리" Rules: - Extract the single Korean keyword that best represents the mood/season/genre/occasion - Prefer this tool over the other two whenever the request boils down to one such keyword - Use searchBooks instead for a specific book title/author, or a descriptive request that combines more than one concept - Use getBestsellers instead for an unqualified "recommend any book", or an explicit top-level category (fiction, business, self-help, etc.)
getStoreDetail
ChatGPTShows one Kyobo Book Centre offline store's location, business hours, and contact info on a map. Use THIS tool only when the user's question names a specific store/branch (e.g. "광화문점 영업시간 알려줘", "강남점 전화번호가 뭐야"). For a book search scoped to a specific store, use searchStoreBooks instead; for general book recommendation/search, use getBestsellers/searchBooks/getKeywordBookList instead. Either storeName or storeCode must be provided (storeName is a LIKE search, so a partial name like "강남" or "광화문" is enough to match). Examples: - "광화문점 영업시간 알려줘" → storeName: "광화문"
searchAuthors
ChatGPTSTEP 1 of the two-step person lookup (searchAuthors → getAuthorDetail). This is a LIST search: it returns every person (author, translator, illustrator) at Kyobo Book Centre whose name matches, with a short bio and representative works for each. It does NOT return full profile details — getAuthorDetail does. Use THIS tool when the user asks ABOUT a person: - "한강 작가에 대해 알려줘" → searchText: "한강" - "베르나르 베르베르가 누구야?" → searchText: "베르나르 베르베르" - "김영하 작가 프로필" → searchText: "김영하" - "Who is Haruki Murakami?" → searchText: "무라카미 하루키" - "이 작가 어떤 사람이야?" (a specific name is in context) → searchText: that name Use searchBooks instead when the user wants that person's BOOKS rather than their profile: - "한강 책 추천해줘" / "김영하 소설 뭐 있어?" → searchBooks MANDATORY follow-up — always confirm before the detail lookup: The API matches names by SUBSTRING, so a search for "한강" also returns 곽한강, 심한강, 이한강 — people the user never asked about. Never assume the first entry is the right one. 1. Present the returned people (name + what distinguishes them, e.g. their representative work) 2. ASK the user which one they meant — e.g. "말씀하신 분이 『소년이 온다』를 쓴 한강 작가가 맞을까요?" If several plausibly match, list them and ask which one. 3. WAIT for the user's answer. Do NOT call getAuthorDetail in the same turn as this search. 4. Once the user confirms, call getAuthorDetail with that person's chrcCode from this result. The only exception: if exactly one person is returned AND their name matches exactly, you may still show them and confirm — but never skip straight to getAuthorDetail on an ambiguous match. Rules: - searchText must be a person's name only — never a book title, genre, or theme - Korean names work best; romanized names may not match - Present only the entries whose name actually matches what the user asked about
searchBooks
ChatGPTOne of three book-recommendation tools, in priority order (getKeywordBookList / searchBooks / getBestsellers). Use THIS tool when: 1. The user mentions a specific book title or author name 2. The user has a descriptive reading need that combines more than one concept and doesn't reduce to a single mood/genre/season keyword and doesn't match a bestseller top-level category Examples for case 1 (specific title/author): - "Find Demian" → keyword: "데미안" - "Search for Harry Potter" → keyword: "해리포터" Examples for case 2 (multi-concept descriptive need → extract keyword): - "이직 준비할 때 읽으면 좋은 책" → keyword: "이직" - "돈 관리 잘하는 법 알려주는 책" → keyword: "재테크" - "면접 잘 보는 법 알려주는 책" → keyword: "면접" - "부모님 선물용 자기계발서" → keyword: "자기계발" - "Books about AI ethics" → keyword: "인공지능윤리" Rules: - Extract the most relevant Korean keyword from user intent - For a single mood/season/genre/occasion keyword (e.g. "여름", "공포", "추리", "힐링", "크리스마스") → use getKeywordBookList instead — it queries curated editorial tags and returns more relevant picks - For broad top-level categories, or an unqualified "recommend a book" (fiction, self-help, business, etc.) → use getBestsellers instead
searchStoreBooks
ChatGPTFinds books in stock at a specific Kyobo Book Centre offline store, by search term. Use THIS tool when a store name and a search term are mentioned together, e.g. "광화문점에 이 책 있어?", "강남점에서 자기계발서 찾아줘". If the request is only about the store itself (business hours/phone number), not book stock, use getStoreDetail instead. keyword works with genre/topic words just as well as exact book titles — if the request combines a recommendation with a specific store (e.g. "광화문점에 괜찮은 인문 서적 있어?"), don't chain a separate book-recommendation tool first; call this tool directly with keyword: "인문". storeName must match one of the stores listed below (a partial name is fine, e.g. "광화문" → "광화문점"). If the store isn't in the list, don't call this tool — tell the user instead. Store list: 광화문점, 가든파이브점, 강남점, 건대스타시티점, 동대문점, 목동점, 서울대점, 수유점, 영등포점, 원그로브점, 은평점, 이화여대점, 잠실점, 천호점, 청량리점, 합정점, 광교점, 분당점, 송도점, 인천점, 일산점, 판교점, 평촌점, 수원점, 경성대ㆍ부경대점, 광주상무점, 대구점, 대전점, 부산점, 세종점, 센텀시티점, 울산점, 전주점, 창원점, 천안점, 칠곡점, 해운대 팝업스토어