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 웹훅 이벤트를 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 ?