Skip to content

Juji's Built-in Library Topics

Juji's built-in topics can be used freely in a script after requiring their namespaces. Regardless of their intended use, a built-in topic is just like any topic and can be used anywhere a topic can be used.

Fallback topics

Most updated fallback topics reside in the juji.topics.fallback.v3 namespace. They are usually used as ad-lib topics to handle input that is unexpected in or unspecific to the current agenda topic or its subtopics. Most of the built-in fallback topics do not expect any argument.

Topic Purpose Description
(handle-missed-user-answers) user-answered This fallback topic handles situations where a user already provided requested information but an AI agent somehow missed it. For example, a user might say "I already told you" or "I have provided the answer already." In such a case, the AI will act accordingly, e.g., checking if the input is there or needs to re-ask.
(handle-user-excuses) user-excuse This fallback captures various types of user excuses and responds accordingly, such as "this is personal" or "this is a hard question".
(handle-chat-flow) chat-flow This fallback handles user request to manage the flow of a conversation, such as end or pause an ongoing conversation. The AI agent will handle various flow request accordingly.
(handle-skip) skip This is a special case of a user's chat flow management. Depending on the situation (e.g., a question is required), the AI agent will handle it accordingly.
(echo-user-input) echo-user This fallback topic allows an AI agent to capture various user comments and respond to them accordingly. For example, a user may make a comment ("I'm sad") or an acknowledgement (e.g., "cool").
(handle-user-questions-rep) user-asking This fallback topic handles various user questions about the AI agent.
(handle-user-questions-juji) user-asking This fallback topic handles various user questions about Juji, the company.
(handle-user-questions-general) user-asking This fallback topic handles various user questions in general, such as weather.
(handle-user-clarification) ask-clarification This fallback topic handles various user questions about the AI agent.
(handle-user-requests) user-request This fallback topic handles various user requests, such as a user wants to ask a question.
(handle-no-knowledge) no-knowledge This fallback handles situations when users say they have no knowledge.
(handle-user-questions-not-answered ?msg) user-question-unanswered This fallback handles situations when a user's question or request is not granted. Even though a user's request/question is not addressed, an AI agent should acknowledge and explain the situation. This topic expects one argument, which can be used to customize the default acknowledgement message. nil can be used to skip customization.
(handle-gibberish) gibberish This fallback detects various gibberish user input and handles it accordingly.

Interviewing Topics

Most updated interviewing topics reside in the juji.topics.interviewing.v3 namespace. They are usually used as agenda topics or their subtopics. Most of interviewing topics expect one argument, i.e., ?q question.

Topic Description
(handle-interview-fallback ?q) This topic handles the chat flow after a fallback topic is triggered during an interview. For example, it may instruct an AI agent to continue with the question or change a topic.
(rep-tell) This allows an AI agent to make a comment during a chat without requesting a user's input.
(ask-ready-2-start ?q) This topic asks whether a user is ready to start.
(handle-start ?q) This topic handles various user input in the above inquiry and act accordingly.
(ask-ready-2-continue ?q) This topic asks whether a user is ready to continue a chat.
(handle-continuation ?q) This topic handles various user input in the above inquiry and act accordingly.
(final-closing-leave ?msg) This topic handles the close out of a chat. The argument is used to customize the end msg.
(handle-ask-for-more ?n) When a user is prompted for more info, this topic handles various user responses accordingly. The argument is used to specify how many topics to skip if user does not desire to go further.
(ask-group-questions ?q) This topic asks GUI form-based questions.
(handle-group-questions ?q) This topic handles various user responses to form-based questions.
(collect-basic-info-from-gui ?q) This topic asks basic GUI question (e.g., a gender choice question)
(handle-gui-completion ?q) This topic handles various user responses to a basic GUI question.
(ask-general-question ?q) This sends a general inquiry to a user
(handle-user-response ?q) This handles various user input to a general inquiry.
(ask-about-hobby ?q) This inquiries about a user's hobby
(handle-hobby-response-digression ?q) This handles a user's digressed responses to a hobby inquiry.
(handle-hobby-response ?q) This handles a user's legit responses to a hobby inquiry.
(ask-about-hobby-why ?q) Ask about "why" regarding to a user's hobby, e.g., why do you like to read?
(ask-about-passion ?q) This inquiries about a user's passion
(handle-user-passion-digression ?q) This handles a user's digressed responses to a passion inquiry.
(handle-user-passion ?q) This handles a user's legit responses to a passion inquiry.
(ask-about-choice ?q) This inquiries about a user's choice made, e.g., what kind of car do you drive? Or what kind of cell phone do you use?
(handle-user-choice ?q) This handles a user's legit responses to a choice inquiry.
(ask-about-favorite ?q) This inquiries about a user's favorite thing? For example, what's your favorite book or what's your favorite movie?
(handle-user-fav-thing-digression ?q) This handles a user's digressed responses to a favorite thing inquiry.
(handle-user-fav-thing ?q) This handles a user's legit responses to a favorite thing inquiry.
(ask-about-least-favorite ?q) This inquiries about a user's least favorite thing? For example, what's your least favorite book or which movie do you dislike most?
(handle-user-least-fav-thing-digression ?q) This handles a user's digressed responses to a least favorite thing inquiry.
(handle-user-least-fav-thing ?q) This handles a user's legit responses to a least favorite thing inquiry.
(ask-about-companions ?q) This inquiries about a user's companionship, e.g., who did you spend time with today? Who accompanied you to yesterday's meeting?
(handle-user-interaction ?q) This handles a user's legit responses to a companionship inquiry.
(ask-about-usage ?q) This inquiries about a user's usage of X, e.g., how often do you use your cell phone in a day?
(handle-usage-response ?q) This handles a user's legit responses to a usage inquiry.
(ask-general-question-yes-no ?q) Ask a yes/no question
(handle-user-response-binary-digression ?q) This poses a yes/no question, e.g., do you have experience working in a restaurant?
(handle-user-response-binary ?q) This handles a user's legit responses to a yes/no inquiry.
(ask-about-history-vice ?q) This inquiries about a user's unpleasant history, e.g., what's the most embarrassing moment in your life?
(handle-user-response-history-vice ?q) This handles a user's legit responses to a history inquiry.
(ask-why ?q) This asks "why"
(handle-why-digression ?q) This handles a user's digressed responses to a why question, e.g., the reason is really long
(handle-why ?q) This handles a user's legit responses to a why inquiry.
(ask-why-like ?q) This asks a user "why" s/he likes something
(handle-user-why-like ?q) This handles a user's legit responses to a why-like inquiry.
(ask-about-user-best-something ?q) This asks about the best thing of a user thinks, e.g., what is the best restaurant you have ever been to?
(handle-user-best-something-digression ?q) This handles a user's digressed responses to a best thing inquiry, e.g., "I can come up with several best places"
(handle-user-best-something ?q) This handles a user's legit responses to a best thing inquiry.
(ask-user-best-friend ?q) This asks about a user's best friend, e.g., who is your best friend
(handle-user-best-friend-digression ?q) This handles a user's digressed responses to a best friend inquiry, e.g., "I have several best friends"
(handle-user-best-friend ?q) This handles a user's legit responses to a best friend inquiry.
(ask-about-user-best-quality ?q) This asks about the best thing of a user, e.g., what is your best quality
(handle-user-best-quality-digression ?q) This handles a user's digressed responses to a best quality inquiry, e.g., "I have several best qualities"
(handle-user-best-quality ?q) This handles a user's legit responses to a best quality inquiry.
(ask-about-user-worst-quality ?q) This asks about the worst thing of a user, e.g., what is your biggest weakness
(handle-user-worst-quality-digression ?q) This handles a user's digressed responses to a worst quality inquiry, e.g., "I have several"
(handle-user-worst-quality ?q) This handles a user's legit responses to a worst quality inquiry.
(ask-about-knowledge ?q) This asks about a user's knowledge
(handle-user-knowledge ?q) This handles a user's legit responses to a knowledge inquiry.
(ask-about-experience ?q) This asks about a user's experience
(handle-user-experience ?q) This handles a user's legit responses to a experience inquiry.
(ask-visitor-objective ?q) This asks about a user's objective of a visit
(handle-visitor-objective-digression ?q) This handles a user's digressed responses to an objective inquiry
(handle-visitor-objective ?q) This handles a user's legit responses to an objective inquiry.
(ask-about-3rdparty-identity ?q) This asks a user about another person's identity, e.g., who helps you take care of your grandparents?
(handle-3rdparty-identity-digression ?q) This handles a user's digressed responses to a 3rd party identity inquiry
(handle-3rdparty-identity ?q) This handles a user's legit responses to a 3rd party identity inquiry
(ask-about-3rdparty-identity-juji ?q) This asks a user about another person's identity, e.g., who invites you to chat w/ Juji? This question is more specific to Juji. In this case, the responses are customized to Juji's context.
(handle-3rdparty-identity-juji ?q) This handles a user's legit responses to a 3rd party identity inquiry related to Juji.
(ask-information-source ?q) This asks a user about where s/he gets information, e.g., where do you get information about new games?
(handle-information-source-digression ?q) This handles a user's digressed responses to an info source inquiry
(handle-information-source ?q) This handles a user's legit responses to an info source inquiry
(ask-information-source-juji ?q) This asks a user about where s/he gets information specific to Juji, e.g., where did you hear about Juji?
(handle-information-source-juji ?q) This handles a user's legit responses to an info source inquiry related to Juji, e.g., commenting the person if mentioned.
(ask-user-general-feedback ?q) This elicits a user's feedback on a particular topic, e.g., feel free to leave your feedback
(handle-user-general-feedback-digression ?q) This handles a user's digressed responses to a feedback asking
(handle-user-general-feedback ?q) This handles a user's legit responses to a feedback asking
(ask-what-user-think-of-this ?q) This elicits a user's opinion on a particular topic.
(handle-what-user-think-of-this ?q) This handles a user's legit responses to an opinion elicitation
(ask-what-user-think-juji-idea ?q) This elicits a user's opinion on a particular Juji topic, e.g., what do you think of my analysis?
(handle-what-user-think-of-juji-idea-digression ?q) This handles a user's digressed responses to a Juji opinion inquiry
(handle-what-user-think-of-juji-idea ?q) This handles a user's legit responses to a Juji opinion inquiry
(ask-opinion-like ?q) This elicits a user's opinion of liking something, e.g., what do you like about the game?
(handle-opinion-like ?q) This handles a user's legit responses to a opinion-like inquiry
(ask-opinion-dislike ?q) This elicits a user's opinion of liking something, e.g., what do you dislike about the game?
(handle-opinion-dislike ?q) This handles a user's legit responses to a opinion-dislike inquiry
(ask-user-permission-for-analysis ?q) This inquires about a user's permission to perform analysis.
(handle-user-permission-for-analysis ?q) This handles a user's legit responses to a permission inquiry
(ask-user-self-intro ?q) This asks a user to make a self intro
(handle-user-self-intro-digression ?q) This handles a user's digressed responses to a self-intro inquiry
(handle-user-self-intro ?q) This handles a user's legit responses to a self-intro inquiry
(ask-user-challenges ?q) This inquiries a user's challenge
(handle-user-challenges-digression ?q) This handles a user's digressed responses to a challenge inquiry
(handle-user-challenges ?q) This handles a user's legit responses to a challenge inquiry
(ask-user-top-challenge ?q) This inquiries a user's top challenge
(handle-user-top-challenge-digression ?q) This handles a user's digressed responses to a top-challenge inquiry
(handle-user-top-challenge ?q) This handles a user's legit responses to a top challenge inquiry
(ask-user-top-work-challenge ?q) This inquiries a user's top work challenge
(handle-user-top-work-challenge-digression ?q) This handles a user's digressed responses to a top work challenge inquiry
(handle-user-top-work-challenge ?q) This handles a user's legit responses to a top work challenge inquiry
(ask-user-product-challenges ?q) This inquiries a user's product challenge, e.g., what is the challenge you have faced in using this product?
(handle-user-product-challenges ?q) This handles a user's legit responses to a top work challenge inquiry
(ask-user-contact-info ?q) This inquiries a user's contact info, e.g., what's your contact email at work?
(handle-user-contact-info-digression ?q) This handles a user's digressed responses to a contact inquiry, e.g., I just retired
(handle-user-contact-info ?q) This handles a user's legit responses to a contact inquiry
(ask-email ?q) This asks for a user's email
(handle-user-email-digression ?q) This handles a user's digressed responses to a email inquiry
(handle-user-email ?q) This handles a user's legit responses to a email inquiry
(ask-influence-in-decision ?q) This inquiries what would influence a user's decision?
(handle-influence-in-decision ?q) This handles user legit responses to decision influences.
(ask-about-cellphone ?q) This inquiries what cell phone a user uses
(handle-cellphone-response ?q) This handles user legit responses to cell inquiry
(ask-game-plat ?q) This inquiries what game platform a user uses
(handle-game-plat ?q) This handles user legit responses to game inquiry
(ask-device ?q) This inquiries what device a user uses, what computer device do you use?
(handle-device-digression ?q) This handles user digressed responses to device inquiry, e.g., I have never used such a device
(handle-device ?q) This handles user legit responses to device inquiry
(ask-what-user-learned ?q) This inquiries what a user has learnt from an event or experience
(handle-what-user-learned ?q) This handles user legit responses to lessons learned inquiry
(greet-repeated-visitor ?q) Greet a repeated visitor
(handle-repeated-visitors ?q) Handle various visitor responses, e.g., a visitor wishes to continue or otherwise.
(ask-for-positive-reference ?q) This requests a user to provide a reference
(handle-ask-for-positive-reference ?q) This handles user legit responses to reference inquiry
(ask-for-negative-reference ?q) This requests a user to provide a negative reference, e.g., who would be your worst reference?
(handle-ask-for-negative-reference ?q) This handles user legit responses to negative reference inquiry
(ask-about-user-most-proud-moment ?q) This inquiries a user's most proud moment
(handle-user-most-proud-moment-digression ?q) This handles user digressed responses to proud-moment inquiry
(handle-user-most-proud-moment ?q) This handles user legit responses to proud-moment inquiry
(ask-user-company ?q) This inquiries about a user's affiliation
(handle-user-company-response-digression ?q) This handles user digressed responses to affiliation inquiry, e.g.. I am looking for a job
(handle-user-company-response ?q) This handles user legit responses to affiliation inquiry
(ask-how-we-can-help ?q) This asks a user's how a business could help
(handle-how-we-can-help ?q) This handles user legit responses to help inquiry
(ask-method-to-collect-info ?q) This asks a user's method of collecting information
(handle-method-to-collect-info-digression ?q) This handles user digressed responses to info-collection method inquiry
(handle-method-to-collect-info ?q) This handles user legit responses to info-collection method inquiry
(ask-for-any-text-input ?q) This requests text input in a form
(accept-any-text-input ?q) This processes text input in a form
(invite-forever-questioning ?q) This invites user to keep asking questions. Usually this is used at the very end of the chat.
(repeatedly-answer-question-forever) This processes user's question continuously.
(ask-how-long-gaming ?q) This asks a user how long s/he has been playing games
(handle-how-long-response-digression ?q) This handles user digressed responses to gaming experience inquiry
(handle-how-long-gaming-response ?q) This handles user legit responses to gaming experience inquiry
(ask-user-product-expectations ?q) This asks a user's expectation about a product
(handle-user-expectations-digression ?q) This handles user digressed responses to product expectation inquiry
(handle-user-product-expectations ?q) This handles user legit responses to product expectation inquiry
(invite-user-question ?q) Invite a user to ask a question
(handle-invite-user-question-digression ?q) This handles user digressed responses to question invitation
(handle-invite-user-question ?q) This handles user legit responses to question invitation
(tell-personalities-w-question ?q) This tells a user his/her inferred personality and asks a corresponding question
(tell-shopper-dna) This tells a user his/her shopper DNA
(tell-personalities-and-gamer-dna) This tells a user his/her gamer DNA
(ask-about-team-role ?q) Asks about a user's preferred team role
(ask-about-values ?q) Asks about a user's values
(ask-how-many ?q) "how many" question
(ask-when ?q) "when" inquiry
(ask-where ?q) "where" inquiry
(ask-what-entity ?q) This is for asking about entities in general (e.g., "What trailer you are watching?", "Which team you are rooting for?", "What app you are using?")
(ask-what-gender ?q) Ask about gender
(ask-about-leadership ?q) Ask about leadership style
(ask-about-work-style ?q) Ask about work style
(ask-about-expectation ?q) Ask about general expectation
(ask-visitor-background ?q) Ask about a user's background
(ask-for-referral ?q) Ask a user to make a referral
(ask-about-skills ?q) Ask a user's skills
(ask-visitor-situation ?q) Ask about a user's situation, e.g., what happens to the tool you are using now?
(ask-about-budget ?q) Ask about budget
(ask-about-product-preferences ?q) Ask about product preferences
(ask-why-apply ?q) Ask a user why s/he applied for a particular position or membership