$ ssh root@server-ip-address
- Create a new user and set the password:
$ adduser ubuntu
| """ | |
| Restaurant Booking Voice Agent | |
| ============================== | |
| 🎯 LEARNING OBJECTIVES: | |
| This demo teaches you how to build a LiveKit voice AI agent: | |
| 1. Voice Agent Architecture - How to structure a LiveKit voice agent | |
| 2. Speech-to-Text (STT) - How to configure STT for real-time transcription | |
| 3. Text-to-Speech (TTS) - How to configure TTS for natural voice responses |
| --------------------------------------------------------------------------------------------------------------------- | |
| /* Schemas */ | |
| --------------------------------------------------------------------------------------------------------------------- | |
| create schema forum_example; | |
| create schema forum_example_private; | |
| --------------------------------------------------------------------------------------------------------------------- | |
| /* Extenstions */ | |
| --------------------------------------------------------------------------------------------------------------------- |
| [ | |
| { | |
| "id": "sku_HG9uF45PBaiuZm", | |
| "categories": ["new arrivals"], | |
| "name": "Timber Gray Sofa", | |
| "price": "1000", | |
| "description": "Stay a while. The Timber charme chocolat sofa is set atop an oak trim and flaunts fluffy leather back and seat cushions. Over time, this brown leather sofa’s full-aniline upholstery will develop a worn-in vintage look. Snuggle up with your cutie (animal or human) and dive into a bowl of popcorn. This sofa is really hard to leave. Natural color variations, wrinkles and creases are part of the unique characteristics of this leather. It will develop a relaxed vintage look with regular use.", | |
| "brand": "Jason Bourne", | |
| "currentInventory": 4 | |
| }, |
| [ | |
| { | |
| "categories": ["new arrivals"], | |
| "name": "Timber Gray Sofa", | |
| "price": "1000", | |
| "description": "Stay a while. The Timber charme chocolat sofa is set atop an oak trim and flaunts fluffy leather back and seat cushions. Over time, this brown leather sofa’s full-aniline upholstery will develop a worn-in vintage look. Snuggle up with your cutie (animal or human) and dive into a bowl of popcorn. This sofa is really hard to leave. Natural color variations, wrinkles and creases are part of the unique characteristics of this leather. It will develop a relaxed vintage look with regular use.", | |
| "brand": "Jason Bourne", | |
| "currentInventory": 4 | |
| }, | |
| { |
| // the main app file | |
| import express from "express"; | |
| import loadDb from "./loadDb"; // dummy middleware to load db (sets request.db) | |
| import authenticate from "./authentication"; // middleware for doing authentication | |
| import permit from "./permission"; // middleware for checking if user's role is permitted to make request | |
| const app = express(), | |
| api = express.Router(); | |
| // first middleware will setup db connection |
| emulator -list-avds | |
| emulator -avd <phone_id> | |
| open -a Simulator |
| # start | |
| sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist | |
| # stop | |
| sudo launchctl unload /Library/LaunchDaemons/org.jenkins-ci.plist |
| function slugify(text) | |
| { | |
| return text.toString().toLowerCase() | |
| .replace(/\s+/g, '-') // Replace spaces with - | |
| .replace(/[^\w\-]+/g, '') // Remove all non-word chars | |
| .replace(/\-\-+/g, '-') // Replace multiple - with single - | |
| .replace(/^-+/, '') // Trim - from start of text | |
| .replace(/-+$/, ''); // Trim - from end of text | |
| } |
| -- First create matches using a UDF, here I am using a combination of Jaro Winkler and (a normalized version of) Levensthein | |
| -- | |
| -- Input: cleaned_table: a table with "cleaned" names | |
| -- Output: tmp_groups: a table with uid - group_id tuples. Each group_id contains all uid's that belong to names that match. | |
| DROP TABLE #matches | |
| SELECT a.clean_Name, | |
| a.uid, | |
| b.clean_Name clean_name_2, |