GPT-3.5 を使用して Google Meet の通話を要約します。
このプロジェクトでは、OpenAI の gpt-3.5-turbo-16k モデルを使用します。
例については、以下のデモを参照してください。
手順:
Google Cloud でサービス アカウントを作成し、JSON キー ファイルをダウンロードします。詳細については、この例またはこの例を参照してください。
JSON キーをcredentials.json
ファイルに保存します。
Docker ビルド仕様は、 credentials.json
ファイルをコンテナー イメージにコピーします。
他のユーザーが所有する Google ドライブ ファイルにアクセスするには、サービス アカウントのドメイン全体の委任を必ず有効にしてください。
このビルド例では、AWS ECR を使用してコンテナ イメージを保存します。ただし、任意のコンテナー レジストリを使用できます。
xxx.dkr.ecr.us-east-1.amazonaws.com
コンテナー レジストリに置き換えます。
AWS ECR にログインします。
aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 261082948988.dkr.ecr.us-east-1.amazonaws.com
Docker イメージをビルドします。
docker build -t meeting-notes .
画像にタグを付けます:
docker tag meeting-notes:latest 261082948988.dkr.ecr.us-east-1.amazonaws.com/autohost-meeting-notes:latest
イメージを ECR にプッシュします。
docker push 261082948988.dkr.ecr.us-east-1.amazonaws.com/autohost-meeting-notes:latest
CloudFormation パラメータ ファイルを作成します。
cp stack-params.json stack-params-prod.json
次のパラメータの値を使用してstack-params-prod.json
ファイルを更新します。
aws-cli
使用して CloudFormation テンプレートをデプロイします。
aws cloudformation create-stack
--stack-name meeting-notes-prod
--capabilities CAPABILITY_NAMED_IAM
--tags Key=service,Value=meeting-notes Key=Environment,Value=prod
--parameters file:// $( pwd ) /stack-params-prod.json
--template-body file:// $( pwd ) /cloudformation.yaml --profile default
aws-cli
使用して CloudFormation テンプレートを更新します。
aws cloudformation update-stack
--stack-name autohost-meeting-notes-prod
--capabilities CAPABILITY_NAMED_IAM
--tags Key=service,Value=meeting-notes Key=Environment,Value=prod
--parameters file:// $( pwd ) /stack-params-prod.json
--template-body file:// $( pwd ) /cloudformation.yaml --profile default
最初にコンテナー イメージをビルドします。
次の内容の.env
ファイルを作成します。
AWS_DEFAULT_REGION=us-east-1
OPENAI_API_KEY=xxx
OPENAI_ORG_ID=org-xxx
AWS_ACCESS_KEY_ID=xxx
AWS_SECRET_ACCESS_KEY=xxx
MAILGUN_API_KEY=xxx
MAILGUN_DOMAIN=xxx.xyz
S3_BUCKET=xxx
PROMPT_HUB_API_KEY=xxx
LANGCHAIN_TRACING_V2=true
LANGCHAIN_PROJECT=meeting-notes
LANGCHAIN_API_KEY=xxx
イメージをビルドして実行します。
docker build -t meeting-notes . && docker run -p 9000:8080 --env-file=.env --rm meeting-notes
新しいターミナル ウィンドウを開き、 curl
使用して次のエンドポイントをテストします。
Google Drive Webhook イベントを API に送信します。
curl -XPOST " http://localhost:9000/2015-03-31/functions/function/invocations "
-d ' {"headers":{"x-goog-resource-uri":"https://www.googleapis.com/drive/v3/changes?alt=json&pageToken=511460",
"x-goog-channel-token":"roy%40autohost.ai"}} '
従業員が会議の記録を要約するための SQS イベント:
curl -XPOST " http://localhost:9000/2015-03-31/functions/function/invocations "
-d ' {"Records":[{"messageId":"1JlgPkv5j_N9ul39dWRV-cVcVPIB-lfUK9OcKMALhxgg","body":"{"title":"Roy / Nam (2024-08-16 14:33 GMT-4) – Transcript","id":"1dyoTC5HG4Sfc75jSfeFUU-Rq52XuOnz5aief_mfzirQ","link":"https://docs.google.com/document/d/1dyoTC5HG4Sfc75jSfeFUU-Rq52XuOnz5aief_mfzirQ/edit?usp=drivesdk","owner_email":"[email protected]"}","attributes":{"ApproximateReceiveCount":"1","AWSTraceHeader":"Root=1-6470f9b0-xxxx;Parent=xxxx;Sampled=0;Lineage=85108a56:0","SentTimestamp":"1685125554295","SenderId":"change-me:meeting-notes-prod-api","ApproximateFirstReceiveTimestamp":"1685125554296"},"messageAttributes":{},"md5OfBody":"11268099d001110f04757778362ddb11","eventSource":"aws:sqs","eventSourceARN":"arn:aws:sqs:us-east-1:change-me:meeting-notes-prod-prod-queue","awsRegion":"us-east-1"}]} '
会議出席者に送信される電子メールの例:
Git Bootcamp (2023-05-29 14:03 GMT-4) - Transcript
Attendees:
Gilfoyle, Dinesh, Richard Hendricks, Jared Dunn, Monica Hall, Erlich Bachman
Summary:
In the workshop, Gilfoyle provided an in-depth explanation of Git, focusing on the differences
between merging and rebasing. He emphasized the safety of using git fetch for downloading updates
from the remote repository and used visual aids to illustrate the differences between merging and rebasing.
He advised against squashing commits from develop to master to avoid confusion and duplication.
He also stressed the importance of updating branches and creating feature branches off of develop,
recommending the rule of two for branching off feature branches and merging changes into develop in
small increments. He introduced the concept of WIP or draft PRs for ongoing work and the need for a clear
team workflow. He also touched on the interactive rebase command and its options, and concluded with a
brief discussion on git log and its search options.
Key Decisions:
- Git fetch should be used for safely downloading updates from the remote repository.
- Squashing commits from develop to master should be avoided to prevent confusion and duplication.
- The rule of two should be followed for branching off feature branches and changes should be merged into develop in small pieces.
- A clear workflow should be established for the team, including the use of WIP or draft PRs for ongoing work.
Next Steps:
- Team members should familiarize themselves with the differences between merging and rebasing.
- Team members should practice using git fetch for downloading updates.
- Team members should avoid squashing commits from develop to master.
- Team members should follow the rule of two for branching off feature branches and merge changes into develop in small increments.
- Team members should use WIP or draft PRs for ongoing work.
- Team members should establish a clear workflow.
- Team members should familiarize themselves with the interactive rebase command and its options.
- Team members should learn how to use git log and its search options.
Full transcript:
https://docs.google.com/document/d/xxxxxx/edit?usp=drivesdk
---
Sent by Meeting Notes AI ?