skills/classification/evaluation/prompts.py (30 lines of code) (raw):

from vectordb import VectorDB import textwrap vectordb = VectorDB() # Load the vector database vectordb.load_db() categories = """<category> <label>Billing Inquiries</label> <content> Questions about invoices, charges, fees, and premiums Requests for clarification on billing statements Inquiries about payment methods and due dates </content> </category> <category> <label>Policy Administration</label> <content> Requests for policy changes, updates, or cancellations Questions about policy renewals and reinstatements Inquiries about adding or removing coverage options </content> </category> <category> <label>Claims Assistance</label> <content> Questions about the claims process and filing procedures Requests for help with submitting claim documentation Inquiries about claim status and payout timelines </content> </category> <category> <label>Coverage Explanations</label> <content> Questions about what is covered under specific policy types Requests for clarification on coverage limits and exclusions Inquiries about deductibles and out-of-pocket expenses </content> </category> <category> <label>Quotes and Proposals</label> <content> Requests for new policy quotes and price comparisons Questions about available discounts and bundling options Inquiries about switching from another insurer </content> </category> <category> <label>Account Management</label> <content> Requests for login credentials or password resets Questions about online account features and functionality Inquiries about updating contact or personal information </content> </category> <category> <label>Billing Disputes</label> <content> Complaints about unexpected or incorrect charges Requests for refunds or premium adjustments Inquiries about late fees or collection notices </content> </category> <category> <label>Claims Disputes</label> <content> Complaints about denied or underpaid claims Requests for reconsideration of claim decisions Inquiries about appealing a claim outcome </content> </category> <category> <label>Policy Comparisons</label> <content> Questions about the differences between policy options Requests for help deciding between coverage levels Inquiries about how policies compare to competitors' offerings </content> </category> <category> <label>General Inquiries</label> <content> Questions about company contact information or hours of operation Requests for general information about products or services Inquiries that don't fit neatly into other categories </content> </category>""" def simple_classify(context: dict): X = context['vars']['text'] prompt = textwrap.dedent(""" You will classify a customer support ticket into one of the following categories: <categories> {{categories}} </categories> Here is the customer support ticket: <ticket> {{ticket}} </ticket> Respond with just the label of the category between category tags. """).replace("{{categories}}", categories).replace("{{ticket}}", X) return prompt def rag_classify(context: dict): X = context['vars']['text'] rag = vectordb.search(X,5) rag_string = "" for example in rag: rag_string += textwrap.dedent(f""" <example> <query> "{example["metadata"]["text"]}" </query> <label> {example["metadata"]["label"]} </label> </example> """) prompt = textwrap.dedent(""" You will classify a customer support ticket into one of the following categories: <categories> {{categories}} </categories> Here is the customer support ticket: <ticket> {{ticket}} </ticket> Use the following examples to help you classify the query: <examples> {{examples}} </examples> Respond with just the label of the category between category tags. """).replace("{{categories}}", categories).replace("{{ticket}}", X).replace("{{examples}}", rag_string) return prompt def rag_chain_of_thought_classify(context: dict): X = context['vars']['text'] rag = vectordb.search(X,5) rag_string = "" for example in rag: rag_string += textwrap.dedent(f""" <example> <query> "{example["metadata"]["text"]}" </query> <label> {example["metadata"]["label"]} </label> </example> """) prompt = textwrap.dedent(""" You will classify a customer support ticket into one of the following categories: <categories> {{categories}} </categories> Here is the customer support ticket: <ticket> {{ticket}} </ticket> Use the following examples to help you classify the query: <examples> {{examples}} </examples> First you will think step-by-step about the problem in scratchpad tags. You should consider all the information provided and create a concrete argument for your classification. Respond using this format: <response> <scratchpad>Your thoughts and analysis go here</scratchpad> <category>The category label you chose goes here</category> </response> """).replace("{{categories}}", categories).replace("{{ticket}}", X).replace("{{examples}}", rag_string) return prompt