빅데이터 김교수의 "AI노마드연구소" AI로 열어가는 노마드 세상!

빅데이터 김교수의 "AI노마드연구소" AI로 열어가는 노마드 세상입니다. AI 코딩작성, SNS 분석, AI업무자동화 컨설팅 0507-1419-0222

자세히보기

카테고리 없음

계약서 문서 자동화 실습, 파이썬 in 구글 크라우드 플랫폼(GCP)

빅데이터 김교수 2023. 10. 6. 13:46

#기본 환경설정
!pip install --upgrade pip
!pip install --upgrade python-docx

 

오늘 여러분과 함께 파이썬 자동화 실습을 해볼 건데요, 파이썬 자동화 실습 중에 여러분들이 요즘에 많이 사용하는 프로그램 중에 구글 클라우드 플랫폼(GCP)을 많이 활용하고 계십니다. 구글 클라우드 플랫폼을 활용하면 여러분들은 다양한 자동화 작업을 할 수 있습니다. 오늘은 계약서 부분을 모든 문서를 자동화할 수 있도록 실습해보겠습니다.

 



구글 클라우드 플랫폼은 자동화 엔진으로 활용할 것이고, 계약서의 리스트는 엑셀에서 불러올 겁니다. 이 엑셀 기능과 동일한 역할을 하는 어스프레드시트에서 가져옵니다. 구글 스프레드시트를 이용해서 구글 문서에 자동으로 리스트를 집어넣고, 엑셀에서 가져온 리스트의 이름과 계약서의 이름, 주소 등의 내용들을 불러와서 그 내용이 모두 자동으로 입력되어 100장의 문서가 생성되도록 하겠습니다.


구글 클라우드 플랫폼에 대한 교육도 많이 진행되고 있으며, 이번 시간은 여러분들이 구글 클라우드 플랫폼으로 AI 기능을 활용한 빅데이터 취업 등과 관련된 기술을 익히는 데 좋은 시간이 될 것입니다.

최근에 경기도와 구글은 AI 인력 양성을 위해 협력하고 있는데요, 이를 통해 세계적인 빅데이터 기업인 구글과 협력하여 20명의 인력을 육성할 예정입니다. 따라서 국내 빅데이터 관련 사업 확대 및 실시가 예정되어 있으며, 구글클라우드 공식 교육 센터에서 GCP 기반으로 한 AI와 빅데이터 분야 접근 방법 등에 대해 교육 프로그램 운영됩니다.

지금까지 소개한 내용처럼 GCP를 활용하여 계약서 자동화 작업을 해보겠습니다. 위에서 설명한 순서대로 작성된 코드를 실행하여 워드 문서 안에 계약 서식 양식과 주소 등의 변수 값을 입력하여 문서를 생성합니다. 필요한 부분은 코드 상단부터 하단까지 참고하시면 됩니다.


실습 과정에서는 GCP 콘솔로 접근하여 필요한 리소스(스프레드시트 API 및 DOC API)를 연결하고 IAM 관리자로 접속하여 서비스 계정 설정 및 인증 파일 다운로드까지 진행합니다. 그 후 앱 스크립트나 파이선 등 프로그래밍 언어로 코드를 작성하면 됩니다.


실습 결과로는 지정된 폴더 안에 생성된 계약 전형 파일들(계약자 이름별 파일) 확인 가능합니다. 추가적인 수정사항은 필요에 따라 코드 상단부의 변수 값을 변경하여 처리할 수 있습니다.

 

 파이썬 코드는 다음과 같습니다. 

기본 환경구성 설치

!pip install --upgrade pip
!pip install --upgrade python-docx


워드-스프레드시트연동 계약서 작성 코드

 

import gspread
from oauth2client.service_account import ServiceAccountCredentials
import docx
import re

# Use the following scopes:

# Add your service account file to the credentials
credentials = ServiceAccountCredentials.from_json_keyfile_name(
    '/content/drive/MyDrive/구글문서자동화/bigwebservice-3731a97d54ff.json', scope)

gc = gspread.authorize(credentials)

# This is the URL of Google Spreadsheet.
doc = gc.open_by_url(spreadsheet_url)

# Get the worksheet by title (assuming it's the first sheet)
worksheet = doc.get_worksheet(0)

# Read data from Google Sheets
data = worksheet.get_all_records()
if not data:
    print("No data found in the spreadsheet.")
else:
    for record in data:
        # Extract data from each record
        employer_name = record["employer"]
        ceo_name = record["ceo"]
        ceo_address = record["ceo_add"]
        employer_address = record["emp_add"]

        # Read contract form template.
        with open("/content/drive/MyDrive/구글문서자동화/계약서 양식.docx", "rb") as f:
            docx_file = docx.Document(f)  # Load Word document directly

        # Enter personal details into the form.
        for paragraph in docx_file.paragraphs:
            for match in re.finditer(r"{{(.*?)}}", paragraph.text):
                if match.group(1) == "employer":
                    paragraph.text = paragraph.text.replace(match.group(0), employer_name)
                elif match.group(1) == "ceo":
                    paragraph.text = paragraph.text.replace(match.group(0), ceo_name)
                elif match.group(1) == "ceo_add":
                    paragraph.text = paragraph.text.replace(match.group(0), ceo_address)
                elif match.group(1) == "emp_add":
                    paragraph.text = paragraph.text.replace(match.group(0), employer_address)

        # Save contract document.
        docx_file.save(f"/content/drive/MyDrive/구글문서자동화/{employer_name}_계약서.docx")
        print(f"Generated contract for {employer_name}")

print("Contract generation completed.")

 

계약서 워드 템플릿 :

계약서 양식.docx
0.02MB

계약자 리스트 셈플 양식 :

고용계약서1.xlsx
0.01MB