? Gdańsk AI ?
Gdińk AI ist ein voller Stapel-AI-Voice-Chatbot (Sprache-zu-Text, LLM, Text-to-Speech) mit Integrationen zu Auth0, OpenAI, Google Cloud API und Stripe-Web-App, API und AI
Es verwendet Stripe, um Zahlungeninfrastrukturen bereitzustellen, damit Benutzer bibs
kaufen können - die API -Token. Auth0 wird verwendet, um Authentifizierung und Autorisierung bereitzustellen. Sie können sie kostenlos verwenden - Auth0 verfügt über eine kostenlose Stufe von bis zu 7000 Benutzern pro Monat. Stripe berechnet nur Gebühren aus Einkäufen, sodass Sie keine laufenden Kosten von ihnen haben.
Wenn Sie diese Dienste nutzen möchten, müssen Sie Ihren Streifen- und Auth0-Konten einrichten und API-Schlüssel in .env
in web-api/
Verzeichnis einfügen.
Node.js, TypeScript und Express werden hier verwendet
.env_example
zeigt, welche Werte Sie festlegen müssen
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
-Verzeichnisnpm install
oder npm ci
npm run build
npm run start
oder npm run dev
um es mit Hot-Reload auszuführen Es funktioniert derzeit in Google Chrome. Sie können das AI -Logo von Gdińsk drücken, um Audio aufzunehmen, und es dann erneut drücken, um es an Web -API zu senden. Nach einer erfolgreichen Antwort wird Ihnen ein empfangenes Audio abgespielt.
NEXT.js, die hier mit Vercels Vorlage verwendet werden
.env_example
zeigt, welche Werte Sie festlegen müssen
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
oder npm ci
npm run build
stripe listen --forward-to http://localhost:3000/webhook
(passen Sie den Port von 3000 an, wenn Sie ihn geändert haben) -Wir benötigen dies, um den Endpunkt für Bibs -Einkäufe aufzurufen /webhook
-Käufe aufzurufen.npm run start
screen_hint: "signup",
in signup.ts
OpenAI und Google Cloud-API werden hier verwendet, um Sprach-zu-Text (Whisper-1), LLM (GPT-3.5-Turbo) und Text-to-Speech-Dienste (Google Cloud textTospeechclient) bereitzustellen.
Python und Fastapi hier
.env_example
zeigt, welche Werte Sie festlegen müssen
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
-VerzeichnisErstellen Sie ein Konto, dann einen neuen Mieter. Sie müssen einrichten:
Anwendungen
Apis
Erstellen Sie ein Konto, drehen Sie den Testmodus, es sei denn, Sie möchten es auf Produktion ausführen und echte Zahlungen verarbeiten, gehen Sie auf die Registerkarte "Entwickler" und dann auf API -Schlüssel. Hier finden Sie Werte für stripe_secret_key und stripe_publishable_key. Gehen Sie nun auf die Registerkarte Produkte und fügen Sie Produkt hinzu, das einen einzelnen Kauf von BIBS (eine Bib - eine Interaktion mit KI für einen Benutzer) darstellt. Sobald Sie es erstellt haben, kopieren Sie PriceId und geben Sie es in .Env wie tokens_price_id ein.
Erstellen Sie ein Konto, wechseln Sie zu Plattform.openai.com, generieren Sie den API -Schlüssel, verwenden
Erstellen Sie ein Konto, gehen Sie zu IAM & Admin, dann Servicekonten und erstellen Sie ein Projekt. Sie benötigen eine ID des Projekts, um in .Env -Dateien einzulegen. Anschließend müssen Sie JSON mit Anmeldeinformationen generieren und die Werte aus der Datei in Ihre .Env -Dateien extrahieren. Gehen Sie zur Seite "Access -Anmeldeinformationen erstellen" (Sie können Suchmaschinen verwenden, um einen Link zu finden). Dann Schlüssel -> Taste hinzufügen -> Neue Schlüssel erstellen -> JSON -> CREATE. Sie sollten Anmeldeinformationen.json mit allen Werten erhalten, die Sie benötigen. Schließlich müssen Sie einen Text -to -Speech -API -Service aktivieren und sind bereit
Vielen Dank an Jeff McJunkin für die Verbesserung des Readme durch den Konfigurationsvorgang vom Grund und das Füllen der Lücken in den Dokumenten
GNU GPL V2
Wenn Sie diese Software in Ihrer Forschung verwenden, verwenden Sie bitte das folgende Zitat:
@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 }
}
Made in Danzig, Polen im Jahr 2023 von Jędrzej Paweł Maczan