334 lines
12 KiB
Org Mode
334 lines
12 KiB
Org Mode
#+title: Lesson 03 | data types
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../../_share/media/css/herk.css" />
|
|
#+HTML_HEAD: <link rel="stylesheet" type="text/css" href="../../_share/media/css/org-media-sass/collapsible.css" />
|
|
#+HTML_HEAD: <script src="../../_share/media/js/collapsible.js"></script>
|
|
|
|
* 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
|