? Gdańsk AI ?
GDAńsk Ai é um chatbot de voz Ai completo (Speech-to-Text, LLM, Text-to-fala) com integrações para auth0, OpenAI, Google Cloud API and Stripe-App, API e AI
Ele usa o Stripe para fornecer infraestrutura de pagamentos, para que os usuários possam comprar bibs
- os tokens da API. Auth0 é usado para fornecer autenticação e autorização. Você pode usá -los gratuitamente - o auth0 possui uma camada gratuita de até 7000 usuários por mês. A Stripe cobra apenas taxas de compras, para que você não tenha custos contínuos de nenhum deles.
Se você deseja usar esses serviços, precisará configurar suas contas Stripe e Auth0 e colocar as teclas da API em .env
no web-api/
diretório.
Node.js, TypeScript e Express são usados aqui
.env_example
mostra quais valores você deve definir
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
Directorynpm install
ou npm ci
npm run build
npm run start
ou npm run dev
para executá-lo com o Hot-Reload Funciona no Google Chrome atualmente. Você pode pressionar o logotipo da GDAńsk AI para gravar áudio e pressioná -lo mais uma vez para enviá -lo para a API da Web. Após uma resposta bem -sucedida, um áudio recebido é reproduzido para você.
Next.js usado aqui com o modelo de vercel
.env_example
mostra quais valores você deve definir
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
Directorynpm install
ou npm ci
npm run build
stripe listen --forward-to http://localhost:3000/webhook
(Ajuste a porta de 3000 se você alterou) -Precisamos disso para invocar /webhook
nas compras de babadoresnpm run start
screen_hint: "signup",
no signup.ts
A API OpenAI e Google Cloud são usadas aqui para fornecer serviços de fala para texto (Whisper-1), LLM (GPT-3.5-Turbo) e Text-to-fala (Google Cloud TextToSpeechClient).
Python e FASTAPI aqui
.env_example
mostra quais valores você deve definir
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
Crie uma conta e depois um novo inquilino. Você precisará configurar:
Aplicações
APIs
Crie uma conta, gire o modo de teste, a menos que você queira executá -la na produção e processe pagamentos reais, vá para a guia Desenvolvedores e depois as teclas da API. É aqui que você pode encontrar valores para stripe_secret_key e stripe_publishable_key. Agora vá para a guia Products e adicione o produto que representa uma única compra de babadores (um babador - uma interação com a IA para um usuário). Depois de criar, copie o priceId e coloque -o em .env como tokens_price_id.
Crie uma conta, vá para plataform.openai.com, gerar chave da API, use -a em arquivos .env
Crie uma conta, vá para IAM & Admin e, em seguida, contas de serviço e crie um projeto - você precisa de ID do projeto para colocar em arquivos .env. Então você precisa gerar JSON com credenciais e extrair os valores do arquivo para seus arquivos .env. Vá para criar uma página de credenciais de acesso (você pode usar o mecanismo de pesquisa para encontrar um link). Então as teclas -> Adicionar tecla -> Criar nova chave -> JSON -> Criar. Você deve obter credenciais.json com todos os valores necessários para .env. Finalmente, você precisa ativar o serviço da API de texto e estar pronto
Agradecemos a Jeff McJunkin por melhorar o Readme, passando pelo processo de configuração do zero e preenchendo as lacunas nos documentos
GNU GPL V2
Se você usar este software em sua pesquisa, use a seguinte citação:
@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 }
}
Feito em Gdańsk, Polônia em 2023 por Jędrzej Paweł Maczan