? Gdańsk AI ?
Gdańsk AI는 Auth0, OpenAi, Google Cloud API 및 Stripe-Web App, API 및 AI에 통합 된 전체 스택 AI Voice Chatbot (Speech-to-Text, LLM, LLM, Text-Steeech)입니다.
Stripe를 사용하여 지불 인프라를 제공하므로 사용자는 API 토큰 인 bibs
구입할 수 있습니다. Auth0은 인증 및 승인을 제공하는 데 사용됩니다. 무료로 사용할 수 있습니다 - Auth0에는 한 달에 최대 7000 명의 사용자가 무료 계층이 있습니다. Stripe는 구매 비용 만 청구하므로 그 중 어느 누구도 지속적인 비용이 없습니다.
이러한 서비스를 사용하려면 Stripe 및 Auth0 계정을 설정하고 API 키를 web-api/
Directory에서 .env
에 넣어야합니다.
Node.js, TypeScript 및 Express가 여기에서 사용됩니다
.env_example
설정 해야하는 값이 표시됩니다
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
또는 npm ci
npm run build
npm run start
또는 npm run dev
hot reload로 실행합니다. 현재 Google Chrome에서 작동합니다. Gdańsk AI 로고를 눌러 오디오를 녹음 한 다음 다시 한 번 눌러 웹 API로 보낼 수 있습니다. 성공적인 응답 후, 수신 된 오디오가 재생됩니다.
다음.js는 Vercel의 템플릿과 함께 사용했습니다
.env_example
설정 해야하는 값이 표시됩니다
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
또는 npm ci
npm run build
stripe listen --forward-to http://localhost:3000/webhook
(변경 한 경우 3000에서 포트 조정) -Bibs 구매시 /webhook
엔드 포인트를 호출하려면이 문제가 필요합니다.npm run start
screen_hint: "signup",
제거/댓글을 달아 줄 수 있습니다 signup.ts
OpenAi 및 Google Cloud API는 여기에서 Speech-to-Text (Whisper-1), LLM (GPT-3.5-Turbo) 및 Text-To-Steece (Google Cloud TextToSpeechClient) 서비스를 제공하는 데 사용됩니다.
파이썬과 Fastapi는 여기에 있습니다
.env_example
설정 해야하는 값이 표시됩니다
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
디렉토리로 이동하십시오계정을 만들고 새 임차인을 만듭니다. 설정해야합니다.
응용 프로그램
아피스
계정을 만들고 생산에서 실행하고 실제 결제를 처리하고 개발자 탭으로 이동 한 다음 API 키를 사용하지 않으면 테스트 모드를 돌립니다. 여기에서 stripe_secret_key 및 stripe_publishable_key에 대한 값을 찾을 수 있습니다. 이제 제품 탭으로 이동하여 BIBS의 단일 구매를 나타내는 제품을 추가하십시오 (하나의 BIB- 사용자를위한 AI와 하나의 상호 작용). 일단 만들어지면 priceid를 복사하여 .env에 tokens_price_id로 넣으십시오.
계정 생성, Platform.openai.com으로 이동하고 API 키를 생성하고 .env 파일에서 사용하십시오.
계정을 만들고 IAM & Admin으로 이동 한 다음 서비스 계정을 작성하고 프로젝트를 만듭니다. 프로젝트의 ID가 .env 파일에 넣을 필요가 필요합니다. 그런 다음 자격 증명으로 JSON을 생성하고 파일에서 .env 파일로 값을 추출해야합니다. 액세스 자격 증명 페이지를 작성하십시오 (검색 엔진을 사용하여 링크를 찾을 수 있음). 그런 다음 키 -> 키를 추가하십시오 -> 새 키 생성 -> json -> 만들기. .env에 필요한 모든 값으로 Credentials.json을 가져와야합니다. 마지막으로 텍스트 To Speech API 서비스를 활성화해야하며 준비되었습니다.
스크래치에서 구성 프로세스를 통해 readme을 개선하고 문서의 간격을 메우는 Jeff McJunkin에게 감사드립니다.
gnu gpl v2
연구 에서이 소프트웨어를 사용하는 경우 다음 인용을 사용하십시오.
@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 }
}
2023 년 폴란드 Gdańsk에서 제작 한 Jędrzej Paweł Maczan