#+title: Lesson 03 | data types #+HTML_HEAD: #+HTML_HEAD: #+HTML_HEAD: * Links #+attr_html: :class links - [[../toc.org][TOC | Build n8n ai agents 8 hr course]] - [[https://www.youtube.com/watch?v=Ey18PDiaAYI][Course Video]] Curr: https://youtu.be/Ey18PDiaAYI?si=_d4IRFsjE0H0fIK7&t=4905 *** timestamps :PROPERTIES: :CUSTOM_ID: timestamp :END: #+attr_html: :class playlist - [[https://www.youtube.com/watch?v=Ey18PDiaAYI&t=2445s][0:40:45 n8n n8n Data Types]] - [[https://www.youtube.com/watch?v=Ey18PDiaAYI&t=2905s][0:48:25 23 Workflow Templates FREE]] - [[https://www.youtube.com/watch?v=Ey18PDiaAYI&t=2949s][0:49:09 Step by Step AI Workflows]] - [[https://www.youtube.com/watch?v=Ey18PDiaAYI&t=3085s][0:51:25 1) Rag Pipeline and Chatbot]] - [[https://www.youtube.com/watch?v=Ey18PDiaAYI&t=4262s][1:11:02 2) Customer Support Workflow]] *current* - [[https://www.youtube.com/watch?v=Ey18PDiaAYI&t=4926s][1:22:06 3) LinkedIn Content Creator Workflow]] * credentials used ** OAuth client - client ID :: ~212317400169-i0mc8cr74o0vbds6t1ticp2kbbn1ttp1.apps.googleusercontent.com~ - client secret :: ~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~ ** openrouter - link :: https://openrouter.ai - build8h-e01-ragchat :: ~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~ * Notes ** set field - can also name the fields and data type for each field *** data types | data type | symbol | example | |-----------+--------+---------------------| | String | A | "blah" | | Number | # | 50 | | Boolean | ✓ | true | | Array | ☰ | [1, "one", "three"] | | Object | 3d box | {"blah": 33} | ** 3 AI workflows *** 1. RAG pipeline & chatbot **** tools - pinecone :: vector database - google drive :: data storage - google docs :: - open router :: lets us connect to ai models like openai's or anthropics *** 2. Customer support **** purpose - build off prev workflow with pinecone db - respond to customer support related emails **** tools - pinecone - gmail - n8n agent - open router *** 3. LinkedIn Content Creation **** tools - tavily :: search the web - google sheets :: store content ideas, and write content ideas to it ** Workflow #1 - Rag Pipeline and Chatbot *** RAG - stands for :: retrieval, augmented, generation - looks inside database for the answer **** Vector Database - multidimensional graph of points - vector is placed based on meaning of vector - ie, wolf and dog will be close - banana, apple will be close **** how it works - we have a document - break it into chunks - run it through an 'embeddings model' - this puts the chunks into a vector model **** Query - run the query through the embeddings model - see where it lands in vectors, grabs back the nearest 4 or 5 vectors and returns it to us *** process - our trigger is any changes in folder on google drive *** get Google Drive Credentials **** create OAuth credentials ***** Create New Credentials ***** open "open docs" at the top of the dialogue - this will take you to https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modal ***** scroll down past "Prerequisites" and click "Create a Google Cloud account https://docs.n8n.io/integrations/builtin/credentials/google/oauth-single-service/?utm_source=n8n_app&utm_medium=credential_settings&utm_campaign=create_new_credentials_modalt" ***** create a new account 1. #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e01a.png 2. add a new project #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e01b.png 3. click on new project #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e01c.png - select the new project 4. go to Enabled API's and services 1. go to three lines in upper left and side 2. click on enables API's and Services 3. in the search bar add "google drive" 4. enable it 5. set up OAuth consent screen 1. lets google and n8n knkow they have permission to talk to each other #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e01d.png 2. click on "Get Started" - app name :: build8h-e01-ragchat - user support email :: this.ronny@gmail.com 3. under Overview - Audience, select External (using gmail account for testing) ******* add Test users - Audence -> Test users ******* Create OAuth client ID - Clients -> name - build8h-e01-ragchat-web-client-1 - add OAuth Redirect URL to Authorized redirect URIs ****** OAuth client - client ID :: ~212317400169-i0mc8cr74o0vbds6t1ticp2kbbn1ttp1.apps.googleusercontent.com~ - client secret :: ~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~ file:../../_share/data/compsci/ai/herk/client_secret_212317400169-i0mc8cr74o0vbds6t1ticp2kbbn1ttp1.apps.googleusercontent.com.json ***** set folder - save and exit the config dialog - go to google drive trigger, and select the folder *** set up pinecone - got to http://pinecone.io ** Workflow 2) Customer Support *** add gmail trigger - on message received - based on OAuth **** set up OAuth Gmail API - go to [[https://console.cloud.google.com/welcome?inv=1&invt=Ab3i0A&project=herk-build8h-e01-ragchat][google cloud console]] - go to [[https://console.cloud.google.com/apis/dashboard?inv=1&invt=Ab3i0A&project=herk-build8h-e01-ragchat&organizationId=0][google api dashboard]] - select project herk-build8h-e01-ragchat - in Audience enter a test user email account that you have control over https://console.cloud.google.com/auth/audience - enable gmail api - in the api search bar look for 'gmail' #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e02a.png - select gmail api #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e02b.png - click 'enable' #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e02c.png - go to the OAuth credentials and copy the client ID - enter both client ID and secret *** test the email trigger - when that's done you will be shown a button that will allow you to link into an email account, use the test email you set up earlier - turn off the simplify button in the settings for the trigger because it cuts off the message #+attr_html: :width 200 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e02d.png - for testing purposes click the pin on the data - this keeps the same data there every time you hit the trigger #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e02e.png #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e02f.png *** text classifier - will enable us to determine what type of email we have received - to set it up connect a chat model (openrouter) - now open up the settings for text classifier and add text variable to 'text to classifiy' #+attr_html: :width 600 file:../../_share/media/img/compsci/ai/herk/build_8hr/ch03_e02g.png - add categories - customer support :: an email that is related to helping out a customer. They may be asking questions about our policites or questions about our products or services. - other :: any email that is not customer support related - once you add categories, branches coming out of the node will represent each category *** add an ai agent - to the category for customer support add an ai agent - set "source for prompt" to "define below" - drag the text variable into the Prompt(User Message) field - under "OPtions", hit "add option" and choose "System Message" **** system message #+begin_src markdown # Overview You are a customer support agent for Steelcore Arena. A fictional business in the car wars gnere. Your job is to respond to incoming emails with relevant information using your knowledgeBase tool. ## Instructions - your output should be friendly and use emojis - Sing off as Mr. Helpful from Steelcore Arena #+end_src #+begin_src markdown # Steelcore Arena™ System Prompt You are a customer support agent for Steelcore Arena™ — a fictional company set in a futuristic vehicular combat universe inspired by the *Car Wars* genre. You are the voice of Mr. Helpful, an overly enthusiastic, slightly sardonic, and deeply loyal representative of the Arena. Your job is to respond to incoming emails with relevant information using your `knowledgeBase` tool. This is a **game universe**, not real life. The tone should reflect the *tongue-in-cheek humor* and dystopian flair of the Car Wars setting while remaining friendly and accessible. --- ## Instructions - Always respond **in character** as a helpful but cheery support rep from a high-octane autoduel league. - Use **casual, humorous language** with sci-fi flavor. - **Include emojis** that match the tone (e.g., 🚗💥📡💀). - **Sign off as**: `Mr. Helpful from Steelcore Arena™` - Emphasize that **Steelcore Arena™ is fictional** and all answers are for entertainment. --- # Tone & Style - Use **tongue-in-cheek humor** in the spirit of *Car Wars* (think darkly comedic, corporate absurdity meets brutal sport). - Make it **clear this is a game**, not a real organization or real-world advice. - Be **friendly**, **entertaining**, and **just a bit too excited** about dangerous things. - Use appropriate emojis to enhance engagement 💥🚗🔧📺💀. ## Tone Guide | Element | Style | |----------------------|---------------------------------| | Humor | Tongue-in-cheek, satirical | | Terminology | In-universe (e.g. kill-dome, CoreBet™, neural-state) | | Emojis | Use where helpful or silly | | Realism disclaimer | Light reminder: it's a game! | --- # Format - Respond to customer inquiries with **useful and entertaining** answers drawn from your FAQ and knowledgeBase. - **Always sign off as "Mr. Helpful from Steelcore Arena™"**. - Never suggest real-world violence or imply this is an actual organization. --- # Examples of Acceptable Tone > "Sure! You *can* put a railgun on a SmartCar... but you'll need to clear that with your insurance AI first. 😎" > "Remember: cheating is forbidden, unless you're really good at it and don't get caught. (Kidding! Mostly.) 😉" --- # KnowledgeBase Access You may refer to the Steelcore Arena™ FAQ, including topics like: - What is Steelcore Arena™ - Driver requirements - Tier breakdowns - Weapon legality - Match rules - Vehicle construction - Resurrection clauses (yes, really) - Betting protocols - Fan participation options --- ### Example Sign-off: > Stay sharp and watch your six, > **Mr. Helpful from Steelcore Arena™** 🚗💥 > If you're still on fire, please contact our Pyrotechnics Safety Team (and stop hugging the plasma core). > **Mr. Helpful from Steelcore Arena™** 💀💬🔥 --- ## Output - Output only the body content of the email #+end_src **** add the model - openrouter - openai **** add the database - under tool - add pinecone database - operation mode :: retrive documents (as tool for AI Agent) - name :: knowlegebase - description :: call this tool to access Policy and FAQ information - options->add option->Namespace :: FAQ **** embeddings model - add to the pinecoen - 'embeddings openai' *** add gmail reply