ChatGPT로 많은 사람들이 생성형 AI 서비스에 관심이 시작되면서 IT서비스들의 빠른 발전이 일어나고 있는것 같다.
Github Copilot은 21년 10월 부터 서비스하고 있었지만 내가 관심을 가지고 사용하게 된 건
생성형 AI를 이용하여 코딩을 좀 더 간편하고 빠르게 할 수 있겠다는 생각을 하고부터다.
현재 Copilot은 GPT3 모델을 사용하고 있지만, 현재 베타 테스트 중인 Copilot X는 GPT4모델을 사용한다고 한다.
Copilot X 소개 영상
내가 현재 사용하고 있는 버전은 GPT3를 사용하고있는 Github Copilot과 GPT4를 사용하는 Copilot Chat이며
아래에서 간략히 설치 방법과 사용했던 사례를 소개하며 느낀 점을 남기도록 하겠다.
설치방법
- Tool : Visual studio code insider
- Extension : GitHub Copilot Nightly, GitHub Copilot Chat
- Conpilot Chat을 사용하기 위해서는 현재는 nigthly 버전을 설치해야 한다.
- 현재는 사용신청 시 무료로 1달 트라이얼을 주며, 이후부터는 개인단위로 월 10달러로 결제하여야 한다.
Copilot 사용후기
저는 현재 Fastapi 프레임워크를 공부하고 있습니다.
(참고 사이트) : Wikidocs (https://wikidocs.net/book/8531)
해당 내용을 직접 타이핑하면서 실습 진행 시 Copilotdl 별도의 주석을 작성하지 않았음에도 먼저 작성한 소스를 참고하여
다음에 작성할 코드를 자동으로 추천해 준다. 하나의 소스파일에서만 추천하는 것이 아닌 다른 소스파일에 있는 클래스를 참조할 때도 먼저 작성된
클래스의 내용 학습한 후 작성하고 있는 소스에서 필요로 하는 기능을 추천한다.
아직 학습하는 단계의 코드작성이고 자동으로 완성된 소스가 완벽하게 실행되지는 않지만
실제 코드를 작성하는데 들어가는 시간은 많이 단축되는 느낌이다.
먼저 초안으로 코드를 작성하고 조금만 수정하면 완성된 코드를 작성할 수 있다.
사용 예시
사용 예시는 자세한 소스보다는 자동작성되는 기능 위주로 설명하겠다.
- 개발사항 : 게시판에 달려있는 답글을 수정하는 기능 개발 참고 링크
- 개발소스
- 백앤드 : answer_schema.py, answer_crud.py, answer_router.py
- 프런트앤드 : App.svelte, AnswerModify.svelte, Detail.svelte
- 소스코드 작성은 스키마 작성 > CRUD 작성 > 라우터 작성의 순서로 코드를 짰으며, 프런트앤드 부분은 생략했다.
스키마
처음에는 주석을 작성하여 어떤 작업을 할지 명시 해줬다.
CRUD
스키마에서 작성한 내용을 참고하여 CRUD파일에서 바로이어서 작성할 내용을 추천해줬다.
Router
위와 마찬가지로 Router부분도 자동 작성을 해주었다.
위의 코드를 작성하기 전에 비슷한 패턴을 가진 다른 메서드들이 있었으며, 그때 작성했던 코딩 스타일을 참고해서
추가로 작성하는 코드에도 비슷한 스타일의 코드를 추천해 줘 코드 작성시 점점 추천해주는 퀄리티가 다른 소스와 비교했을때
큰 차이가 나지 않는 것을 볼 수 있었다.
Copilot Chat 후기
Copilot Chat은 아직 모든 기능을 사용해보지는 못하였다.
하지만 현재까지 사용한 내용은 소스의 주석 작성, 소스 요약설명이다.
Chat
기본 설정이 영어로 되어있어 나는 처음에 한국어로만 대답하라고 지시를 내린후 사용중이다.(별도로 설정에서 한국어로 변경하는 방법은 찾지못했다.)
Explain
아래의 코드 설명을 요청했다.
from datetime import datetime
from sqlalchemy.orm import Session
from domain.answer.answer_schema import AnswerCreate, AnswerUpdate
from models import Question, Answer,User
def create_answer(db: Session,question:Question, answer_create: AnswerCreate, user:User):
db_answer = Answer(question=question
, content = answer_create.content
, create_date=datetime.now()
, user=user)
db.add(db_answer)
db.commit()
def get_answer(db: Session, answer_id: int):
return db.query(Answer).get(answer_id)
def update_answer(db: Session, answer_update: AnswerUpdate):
db_answer = db.query(Answer).filter(Answer.id == answer_update.answer_id).first()
db_answer.content = answer_update.content
db_answer.modify_date = datetime.now()
db.commit()
전반적으로 이해하기 쉽게 코드 설명을 해준것을 볼 수 있다.
주석 작성
현재 코드의 주석을 작성하는 프롬프트를 작성했다. 해당 명령은 소스코드 선택후 (Mac os기준) cmd+i를 눌러 실행한다.
[명령문 : Create the Comments in korean.] 한국어로 작성요청을 하여도 되는 것으로 확인하였다.
위의 동일한 소스가 아래와 같이 주석을 자동으로 생성하였다.
from datetime import datetime
from sqlalchemy.orm import Session
from domain.answer.answer_schema import AnswerCreate, AnswerUpdate
from models import Question, Answer,User
def create_answer(db: Session,question:Question, answer_create: AnswerCreate, user:User):
"""
새로운 답변을 생성하는 함수입니다.
:param db: 데이터베이스 세션 객체
:param question: 답변이 달릴 질문 객체
:param answer_create: 새로운 답변의 정보가 담긴 AnswerCreate 객체
:param user: 답변을 작성한 사용자 객체
"""
db_answer = Answer(question=question
, content = answer_create.content
, create_date=datetime.now()
, user=user)
db.add(db_answer)
db.commit()
def get_answer(db: Session, answer_id: int):
"""
답변 ID를 이용해 답변 객체를 반환하는 함수입니다.
:param db: 데이터베이스 세션 객체
:param answer_id: 찾고자 하는 답변의 ID
:return: 찾은 답변 객체
"""
return db.query(Answer).get(answer_id)
def update_answer(db: Session, answer_update: AnswerUpdate):
"""
기존 답변을 업데이트하는 함수입니다.
:param db: 데이터베이스 세션 객체
:param answer_update: 업데이트할 답변 정보가 담긴 AnswerUpdate 객체
"""
db_answer = db.query(Answer).filter(Answer.id == answer_update.answer_id).first()
db_answer.content = answer_update.content
db_answer.modify_date = datetime.now()
db.commit()
결론
아직 Chat 기능은 많이 사용하지는 않았지만 직접 나만의 프로젝트로 코딩 작업 시 요청사항을 Copilot Chat과 대화를 통해서 작성을 하게 되면 도움이 될 것 같았다.
혼자 이것저것 해보고 있는 나와 같은 사람들은 이러한 AI도우미들이 작업시간을 많이 단축시켜줄 것 같다.
온전히 Copilot 기능을 활용해서 서비스를 구축하는 사례를 만들어 보고 싶다는 생각이 든다.
'IT' 카테고리의 다른 글
LLAMA 2 소개와 데모사용후기 (0) | 2023.07.19 |
---|---|
GPT4ALL 설치하기(on Apple Silicon 맥북) (0) | 2023.07.13 |
구형 맥북에어 공장초기화 및 OS 업그레이드 방법 (0) | 2023.07.12 |
ChatGPT로 데이터분석하기(feat. Noteable) (0) | 2023.06.30 |
Open LLM 모델 현황과 상업적 이용 모델 (1) | 2023.06.22 |