2025년, 코딩은 선택이 아닌 필수!

2025년 모든 학교에서 코딩이 시작 됩니다. 먼저 준비하는 사람만이 기술을 선도해 갑니다~

강의자료/텍스트기반SW

구글 바드 API 파이썬에서 사용하기

원당컴1 2023. 6. 28. 09:28

1. 바드 API 패키지 설치

실습환경은 Pycharm 에서 실습을 진행하였습니다.

PyCharm의 terminal 에서 pip install bardapi 를 입력하여 설치합니다.

 

2. 바드 API 키 가져 오기

구글에서 아직 api key를 제공하고 있지 않기 때문에 쿠키값을 사용합니다.

https://bard.google.com/?hl=ko 에 법속하여 F12 키를 눌러서 개발자 창을 엽니다.

다음과 같이 Application -> Storage -> Cookies -> 'https://bard.google.com'의 _Secure-1PSID 에 있는 값을 키값으로 사용합니다.

위의 이미지에서 (1) -> (2) 를 선택 후 (3)의 값이 키값으로 사용하고자 하는 값입니다.

bard_api_key = '가져온 키값'

 

3. 바드 API 이용하여 질문하고 답변 받기

- 설치한 bardapi와 os 를 임포트

import bardapi
import os

 - 바드 api 키 설정

    # api 키 설정
    os.environ['_BARD_API_KEY']=bard_api_key

- 질문 작성

    questionText = '다음의 글을 읽고 한 줄로 정리해줘 '
    questionText += """오늘 너무 기분 좋은 소식이 연이어 들려 오네요^^


작년에 대구 소프트웨어 고등학교에 입학한 학생 어머니께서 방명록에 글을 남겨 주셨네요.^^

제가 학생들을 가르치면서 항상 부족한 제 모습을 보면서 학생들에게 조금이라도 도움이 되려고 매번 발버둥을 치고는 있는데 이렇게 힘이 되는 글 남겨 주셔서 너무 감사드립니다.

처음 학원 일을 시작할때만 해도 까 먹는 것 보다 들어 오는게 더 많았던 것 같은데~

이제는 들어오는 것 보다 까먹는게 더 많아서 너무 아쉬울때가 많네요^^

그래도 이렇게 계속 까먹으면서 느끼는 것은 기억에 남는 것은 반복 밖에 없구나 라는 생각을 가지고 오늘도 열심히 반복하면서 잊혀지는 것보다  더 많이 남기려고 노력만 하는 중이네요^^

이 학생은 예전에 저하고 인연으로 저희 학원에서 프로그래밍 과정 수업을 들었었는데~

그것이 밑거름이 되었다고 하니 너무 감사할 수 밖에 없네요^^

저도 알고리즘 수업을 진행하면서 알고리즘이 프로그래밍의 근원인것은 알고 있지만 실제로 이렇게 피드백을 주셔서 너무 감사 드립니다.

(그리고 다시한번 손* 군의 멋진 모습을 응원합니다.^^)


지난번에 화분까지 선물 해 주신 학부모님께서 연락을 주셨네요.^^(화분도 건강하게 잘 키우고 있습니다.^^)

영재고를 준비 중인 학생인데 수올,물올,화올 모두 준비하느라고 너무 바빠서 이번 정올은 준비를 못했다고 아쉬워 하시면서 다른 학생 어머니 근황도 같이 알려 주셨네요.^^

(박**군이 이번 수올 2차 시험을 본다고 하니 좋은 성적이 나올 수 있기를 응원합니다.^^)

 


올해 고등학교에 들어간 학생인데 저희 학원에서 배운 내용들이 교과 수학에서 도움이 된다고 말씀 해 주셔서 제게 얼마나 큰힘이 되는지 모르겠네요.^^

그리고 마지막으로~


전국 3등으로 금상 같은 은상을 받은 우리 황** 군 너무 너무 축하드려요~


전국 34등 11프로로 은상을 입상한 우리 지** 군의 입상을 진심으로 축하드려요^^

 

우리 학생들이  이번 정보올림피아드 입상 소식으로 기분좋게 마무리 해 주었네요.^^

저희를 믿고 맡겨 주시는 학부모님 모든 분들에게 감사드리고~

또 이렇게 피드백을 주시고 실적을 남겨 주셔서 너무 감사한 마음 뿐이네요~

이 자리를 빌어 다시 한번 모든 분들께 감사드립니다.^^"""

제 블로그의 내용중 하나를 정리해 주라는 질문을 만들었습니다.

- 답변 받기

    #바드 대답 듣기
    response = bardapi.core.Bard().get_answer(questionText)
    print(response)

- 대답내용

{'content': '네, 알겠습니다. 글을 읽고 한 줄로 정리해 드리겠습니다.\n\n**글쓴이는 학생들의 입상 소식과 학부모님들의 칭찬에 기뻐합니다.**', 'conversation_id': 'c_ccfb742fb3883128', 'response_id': 'r_ccfb742fb3883a03', 'factualityQueries': [], 'textQuery': '', 'choices': [{'id': 'rc_ccfb742fb388364a', 'content': ['네, 알겠습니다. 글을 읽고 한 줄로 정리해 드리겠습니다.\n\n**글쓴이는 학생들의 입상 소식과 학부모님들의 칭찬에 기뻐합니다.**']}, {'id': 'rc_ccfb742fb3883f25', 'content': ['네, 알겠습니다.\n\n글을 읽고 한 줄로 정리해보면,\n\n"학생들의 성과에 대한 소식을 듣고 기뻐하는 선생님"입니다.\n\n선생님은 학생들이 대구 소프트웨어 고등학교에 입학하고, 정보올림피아드에서 입상했다는 소식을 듣고 기뻐하고 있습니다. 학생들의 성과에 대해 감사하고, 앞으로도 학생들이 잘 되기를 응원하고 있습니다.\n\n감사합니다.']}, {'id': 'rc_ccfb742fb3883800', 'content': ['네, 한국어로 응답해 드리겠습니다.\n\n글을 읽고 정리해 보니, 작가는 학생들을 가르치면서 항상 부족함을 느끼지만, 학생들의 피드백을 통해 힘을 얻고 있다고 합니다. 또한, 학생들이 정보올림피아드에서 입상하는 소식을 듣고 기뻐하고 있습니다.\n\n한 줄로 정리하면, "작가는 학생들을 가르치면서 힘을 얻고 있습니다."입니다.']}]}

네 content  내용을 살펴 보면 글쓴이는 학생들의 입상 소식과 학부모님들의 칭찬에 기뻐합니다. 라고 나와 있네요.^^

정말 이 글을 썼던 때가 소록소록 기억이 나는데 저희 원에 다니던 학부모님들이 잊지 않고 연락을 주셔서 얼마나 기뻤는지 모르겠더라구요. 그리고 학생들 입상 소식은 덤이었구요^^

저희 학원을 다니면서 도움을 받았다는 소식이 저의 삶의 원동력이 되거든요~

저희 학원을 다니던 학생들 중에 아직 대학졸업을 한 학생은 없지만 인천전자마이스터고에 진학한 염** 군이 올해 고3인데 작년에 대회 입상으로 일찍 취업한다는 소식을 받았었는데요~

전자마이스터고는 3년간 취업을 하면 직장인 전형으로 대학교에 입학 할 수가 있다고 해요~

3학년 1학기 취업을 하면 다른 학생보다 1년을 빨리 취업을 하게 되므로 다른 학생보다 1년이 빨라지게 되는데, 그 학생이 이야기 하기를 #인천전자마이스터고 1학년때 전공과목 공부가 아주 중요하다고 하더라구요.^^

그 때 저희 학원에서 배운 공부가 정말 많은 도움이 되었다는 얘기를 듣고 제가 너무 너무 기뻤었는데요~

구글 바드에서 정확하게 제 마음을 한줄로 요약해서 알려 주고 있네요.

하지만 이 상태로는 내용을 보기가 어렵습니다.

content 부분만 출력을 해 보도록 하겠습니다.

- content 추출

print(response['content'])

이렇게 content 내용을 출력 해 볼 수가 있는데요.

사실 bard는 이 내용 하나만 보내 주는게 아니라 선택을 할 수 있도록 여러가지 내용을 보내 주고 있어요.

그럼 여러가지 내용을 하나씩 살펴 보도록 할께요.

- choice 내용 보기

    for i,choice in enumerate(response['choices']):
        print(f"Choice {i+1} : ", choice['content'][0],'\n\n')
Choice 1 :  네, 글을 읽었습니다. 한 줄로 요약하면, 선생님은 학생들의 성공에 대해 기뻐하고, 학부모님들의 지지와 피드백에 감사하고 있습니다. 


Choice 2 :  네, 알겠습니다. 다음의 글을 읽고 한 줄로 정리해 드리겠습니다.


> 오늘 너무 기분 좋은 소식이 연이어 들려 오네요^^


이 글은 학생들을 가르치는 선생님이 학생들의 좋은 소식을 듣고 기뻐하는 내용입니다. 학생들이 대구 소프트웨어 고등학교에 입학하고, 영재고를 준비하고, 정보올림피아드에서 입상하는 등의 좋은 소식을 듣고 선생님은 기뻐하고 감사하는 마음을 표하고 있습니다.


한 줄로 정리하면, "학생들의 좋은 소식에 선생님이 기뻐하고 감사한다"입니다.


도움이 되셨기를 바랍니다. 


Choice 3 :  Sure, here is the summary of the text:

> The author is very happy to hear the good news from his students. One of his students was accepted to the Daegu Software High School, another student is preparing for the Gifted High School Admissions Test, and two students won silver medals in the National Informatics Olympiad. The author is grateful to his students and their parents for their trust and support.

Here is the one-line summary:

> The author is happy to hear the good news from his students.

 

이 것을 이용하면 웹페이지에 있는 글을 읽어서 한 줄로 요약하는 프로그램을 만들어 볼 수가 있을것 같네요.

다음에는 웹페이지를 읽어서 파싱 하는 부분을 살펴 봐야겠어요.^^

 

참고)

https://yeko90.tistory.com/entry/%EB%B0%94%EB%93%9C-api-%EC%82%AC%EC%9A%A9%EB%B2%95

 

구글 바드(google bard) API사용법(무료)

챗gpt api에 이어 드디어 바드 api를 사용할 수 있게 되었다. 물론 정식으로 구글이 제공하는 api는 아니다. 하지만 api기능으로 더할 나위 없이 훌륭하여 소개한다. 참고 : 실습은 코랩 환경에서 진

yeko90.tistory.com

 

사업자 정보 표시
원당컴퓨터학원 | 기희경 | 인천 서구 당하동 1028-2 장원프라자 502호 | 사업자 등록번호 : 301-96-83080 | TEL : 032-565-5497 | Mail : icon001@naver.com | 통신판매신고번호 : 호 | 사이버몰의 이용약관 바로가기