? Gdańsk AI ?
Gdańsk AI adalah chatbot suara AI stack penuh (ucapan-ke-teks, LLM, teks-ke-speech) dengan integrasi ke AUTH0, OpenAi, Google Cloud API dan Stripe-Aplikasi Web, API dan AI
Ini menggunakan Stripe untuk menyediakan infrastruktur pembayaran, sehingga pengguna dapat membeli bibs
- token API. AUTH0 digunakan untuk memberikan otentikasi dan otorisasi. Anda dapat menggunakannya secara gratis - AUTH0 memiliki tingkat gratis hingga 7000 pengguna per bulan. Stripe hanya membebankan biaya dari pembelian, jadi Anda tidak memiliki biaya berkelanjutan dari salah satu dari mereka.
Jika Anda ingin menggunakan layanan ini, Anda harus mengatur akun stripe dan auth0 Anda dan memasukkan kunci API ke .env
di web-api/
direktori.
Node.js, naskah dan ekspres digunakan di sini
.env_example
menunjukkan nilai mana yang harus Anda atur
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
atau npm ci
npm run build
npm run start
atau npm run dev
untuk menjalankannya dengan hot-reload Ini berfungsi di Google Chrome saat ini. Anda dapat menekan logo GDAńsk AI untuk merekam audio, lalu tekan sekali lagi untuk mengirimkannya ke API Web. Setelah tanggapan yang berhasil, audio yang diterima dimainkan untuk Anda.
Next.js Digunakan Di Sini Dengan Template Vercel
.env_example
menunjukkan nilai mana yang harus Anda atur
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
atau npm ci
npm run build
stripe listen --forward-to http://localhost:3000/webhook
(sesuaikan port dari 3000 jika Anda telah mengubahnya) -kami membutuhkan ini untuk meminta /webhook
titik akhir pada pembelian otonpm run start
screen_hint: "signup",
di signup.ts
OpenAI dan Google Cloud API digunakan di sini untuk menyediakan layanan ucapan-ke-teks (Whisper-1), LLM (GPT-3.5-turbo) dan teks-ke-speech (Google Cloud TextTospeechClient).
Python dan Fastapi di sini
.env_example
menunjukkan nilai mana yang harus Anda atur
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
Buat akun, lalu penyewa baru. Anda perlu mengatur:
Aplikasi
Lebah
Buat akun, putar mode uji kecuali Anda ingin menjalankannya pada produksi dan memproses pembayaran nyata, buka tab Pengembang, lalu tombol API. Di sinilah Anda dapat menemukan nilai untuk stripe_secret_key dan stripe_publishable_key. Sekarang buka tab Produk dan tambahkan produk yang mewakili satu pembelian oto (satu bib - satu interaksi dengan AI untuk pengguna). Setelah Anda membuatnya, salin PriceId dan masukkan ke .Env sebagai Tokens_Price_id.
Buat akun, buka platform.openai.com, hasilkan tombol API, gunakan di file .env
Buat akun, buka IAM & Admin, lalu akun layanan dan buat proyek - Anda memerlukan ID proyek untuk dimasukkan ke dalam file .env. Maka Anda perlu menghasilkan JSON dengan kredensial dan mengekstrak nilai -nilai dari file ke file .env Anda. Pergi ke Halaman Membuat Kredensial Akses (Anda dapat menggunakan mesin pencari untuk menemukan tautan). Kemudian kunci -> Tambahkan Kunci -> Buat Kunci Baru -> JSON -> Buat. Anda harus mendapatkan kredensial.json dengan semua nilai yang Anda butuhkan untuk .env. Akhirnya, Anda perlu mengaktifkan teks ke layanan API ucapan dan Anda siap
Terima kasih kepada Jeff McJunkin untuk meningkatkan readme dengan melalui proses konfigurasi dari awal dan mengisi celah di dokumen
GNU GPL V2
Jika Anda menggunakan perangkat lunak ini dalam penelitian Anda, silakan gunakan kutipan berikut:
@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 }
}
Dibuat di Gdańsk, Polandia pada tahun 2023 oleh Jędrzej Paweł Maczan