JoeCP17 / chatGPT_example

chat GPT의 REST API, 웹소켓 스트리밍 두가지 서비스를 제공

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

소개


최근 핫하게 상용화가 되어있는 Chat GPT를 접목하여 서비스를 런칭하는 사례가 증가되고 있다.

해당 부분에 대해 흥미를 가지게 되었고 이 중 현재 스타 2.5K를 받고있는 가장 핫한 서드파티 라이브러리를 활용해 이에 대한 예제를 구현해 보았다.

사용 라이브러리 : https://github.com/TheoKanning/openai-java

예제를 구현하게된 계기는 다음과 같은 이유로 작성하게 되었다.

  • 해당 서비스가 현재 나온지 얼마 안된 시점에서 레퍼런스를 찾는것에 대한 어려움
  • 조금 더 직관적으로 어떻게 사용할 수 있는지를 소개하기 위해

구현기능


Open Ai가 제공하는 서비스 중, 메인 기능이라고 생각하는 채팅에 대해서 구현을 진행하였다. ( 추후 추가 예정 )

2023.04.15 기준 현재 구현한 요소는 다음과 같다.

  • REST API
    • Completion
    • Chat Completion
  • Socket
    • Completion

Socket 에서 Completion 하나만 구현한 이유는 Handler내 서드파티에서 제공하는 OpenAiService 에서 요청 요소만 다르게 적용해주면 되기에 해당 부분에 대해서는 따로 구현을 두진 않았다. ( 비슷한 요소가 있기에 )

2023.05.08

Kotlin으로 구현한 내용을 추가중에 있습니다.

사용 방법


먼저 docker compose 를 활용해 서비스 DB 컨테이너를 실행합니다.

$ docker-compose up --build 

컨테이너가 준비되었다면 스프링 애플리케이션을 빌드한 이후 실행합니다.

$ ./gradlew build && java -jar build/libs/chatgpt-0.0.1-SNAPSHOT.jar

만약 zsh:permission denied: ./gradlew 와 같은 이슈가 발생된다면 아래를 먼저 실행 후 재실행해 주세요

$ chmod +x gradlew

사용 기술


내용 stack
Language Java 11, Kotlin
Framework Spring Boot 2.7.1
Persistence Framework JPA/Hibernate , Querydsl
Third Party Library OpenAi Service
Data MySQL 8.0.19
Build Gradle 7.6
etc Docker, Docker-compose

About

chat GPT의 REST API, 웹소켓 스트리밍 두가지 서비스를 제공


Languages

Language:Java 54.8%Language:Kotlin 45.2%