? Gdańsk AI ?
Gdańsk AI es un chat de voz de pila completa de pila AI (Speech-to-Text, LLM, texto a voz) con integraciones a Auth0, OpenAI, Google Cloud API y Stripe-Aplicación web, API e AI
Utiliza Stripe para proporcionar infraestructura de pagos, para que los usuarios puedan comprar bibs
: los tokens API. Auth0 se utiliza para proporcionar autenticación y autorización. Puede usarlos de forma gratuita: Auth0 tiene un nivel gratuito de hasta 7000 usuarios por mes. Stripe solo cobra tarifas de compras, por lo que no tiene costos continuos de ninguno de ellos.
Si desea utilizar estos servicios, debe configurar sus cuentas Stripe y Auth0 y poner las claves API en .env
en web-api/
Directorio.
Node.js, TypeScript y Express se usan aquí
.env_example
muestra qué valores tienes que establecer
CHATBOT_API_KEY={whatever you decide; this value is reused among ai-api, web-api and web in this project}
OPEN_AI_API_KEY={go to platform.openai.com, generate and copy-paste api key here}
# Google Cloud API
type=service_account
project_id={project id}
private_key_id=
private_key={multiline private key with structure like this:-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----n}
client_email={project name}@{project id}.iam.gserviceaccount.com
client_id=
auth_uri=https://accounts.google.com/o/oauth2/auth
token_uri=https://oauth2.googleapis.com/token
auth_provider_x509_cert_url=https://www.googleapis.com/oauth2/v1/certs
client_x509_cert_url=https://www.googleapis.com/robot/v1/metadata/x509/{project-name}%40{project-id}.iam.gserviceaccount.com
universe_domain=googleapis.com
# Stripe
STRIPE_SECRET_KEY={sk_...}
STRIPE_PUBLISHABLE_KEY={pk_...}
TOKENS_PRICE_ID={price_some characters here - you need to create a price in Stripe for tokens first and then copy-paste it here}
# TOKENS_PER_TRANSACTION defines how many interactions user can make with AI per single bibs purchase
TOKENS_PER_TRANSACTION=5
# Auth0
AUTH0_ISSUER_BASE_URL='https://{tenant-name}.us.auth0.com'
AUTH0_DOMAIN='{tenant-name}.us.auth0.com'
AUTH0_CLIENT_ID=
AUTH0_CLIENT_SECRET=
AUTH0_AUDIENCE="https://{tenant-name}.us.auth0.com/api/v2/"
AUTH0_SCOPE="openid profile email offline_access"
CLIENT_URL={url pointing to where web is deployed}
AI_API_URL={url pointing to where ai api is deployed}
web-api
npm install
o npm ci
npm run build
npm run start
o npm run dev
para ejecutarlo Funciona en Google Chrome actualmente. Puede presionar el logotipo de Gdańsk Ai para grabar audio, luego presionarlo una vez más para enviarlo a la API web. Después de una respuesta exitosa, se te reproduce un audio recibido.
Next.js usado aquí con la plantilla de Vercel
.env_example
muestra qué valores tienes que establecer
CHATBOT_API_KEY={whatever you decide; this value is reused among ai-api, web-api and web in this project}
CHATBOT_API_URL={url to where api is deployed}
NEXT_PUBLIC_API_URL={url pointing to where api is deployed}
API_URL={url to where api is deployed}
# Auth0
NEXT_PUBLIC_AUTH0_ISSUER_BASE_URL="https://{tenant-name}.us.auth0.com"
NEXT_PUBLIC_AUTH0_CLIENT_ID=
AUTH0_SECRET=
AUTH0_BASE_URL={url pointing to where web is deployed}
AUTH0_ISSUER_BASE_URL='https://{tenant-name}.us.auth0.com'
AUTH0_DOMAIN='{tenant-name}.us.auth0.com'
AUTH0_CLIENT_ID=
AUTH0_CLIENT_SECRET=
AUTH0_AUDIENCE="https://{tenant-name}.us.auth0.com/api/v2/"
AUTH0_SCOPE="openid profile email offline_access"
CLIENT_URL={url pointing to where web is deployed}
web
npm install
o npm ci
npm run build
stripe listen --forward-to http://localhost:3000/webhook
(ajuste el puerto de 3000 si lo ha cambiado) -Necesitamos esto para invocar /webhook
en compras de bibsnpm run start
screen_hint: "signup",
en signup.ts
La API de OpenAI y Google Cloud se usa aquí para proporcionar servicios de voz a texto (Whisper-1), LLM (GPT-3.5-TURBO) y Text-to-Speech (Google Cloud TextTospeechClient).
Python y Fastapi aquí
.env_example
muestra qué valores tienes que establecer
CHATBOT_API_KEY={whatever you decide; this value is reused among ai-api, web-api and web in this project}
OPEN_AI_API_KEY={go to platform.openai.com, generate and copy-paste api key here}
# Google Cloud API start
type=service_account
project_id={project id}
private_key_id=
private_key={multiline private key with structure like this:-----BEGIN PRIVATE KEY-----...-----END PRIVATE KEY-----n}
client_email={project name}@{project id}.iam.gserviceaccount.com
client_id=
auth_uri=https://accounts.google.com/o/oauth2/auth
token_uri=https://oauth2.googleapis.com/token
auth_provider_x509_cert_url=https://www.googleapis.com/oauth2/v1/certs
client_x509_cert_url=https://www.googleapis.com/robot/v1/metadata/x509/{project-name}%40{project-id}.iam.gserviceaccount.com
universe_domain=googleapis.com
PORT=9000
ai-api
Crea una cuenta, luego un nuevo inquilino. Necesitará configurar:
Aplicaciones
API
Cree una cuenta, gire el modo de prueba a menos que desee ejecutarla en producción y procesar pagos reales, ir a la pestaña de desarrolladores y luego a las teclas API. Aquí es donde puede encontrar valores para stripe_secret_key y stripe_publishable_key. Ahora vaya a la pestaña de productos y agregue el producto que represente una sola compra de baberos (un babero, una interacción con IA para un usuario). Una vez que lo cree, copie PriceID y póngalo en .env como tokens_price_id.
Cree una cuenta, vaya a plataforma.openai.com, genere la clave API, úsela en archivos .env
Cree una cuenta, vaya a IAM & Admin, luego cuentas de servicio y cree un proyecto: necesita ID del proyecto para poner en archivos .env. Luego debe generar JSON con credenciales y extraer los valores del archivo a sus archivos .env. Vaya a la página Crear credenciales de acceso (puede usar el motor de búsqueda para encontrar un enlace). Luego teclas -> Agregar tecla -> Crear nueva tecla -> json -> Crear. Debe obtener credenciales.json con todos los valores que necesita .env. Finalmente, debe habilitar el servicio de API de texto a voz y está listo
Gracias a Jeff McJunkin por mejorar el Readme al pasar por el proceso de configuración desde el cero y llenar los vacíos en los documentos
GNU GPL V2
Si usa este software en su investigación, utilice la siguiente cita:
@software { Maczan_Gdansk_AI_2023 ,
author = { Maczan, Jędrzej Paweł } ,
title = { {Gdańsk AI - Full stack voice chatbot} } ,
url = { https://github.com/jmaczan/gdansk-ai } ,
year = { 2023 } ,
publisher = { GitHub }
}
Hecho en Gdańsk, Polonia en 2023 por Jddrzej Paweł Maczan