LLM 을 모아서 사용하는 API 를 개발중에 있습니다

알림
|
X

페이지 정보

작성자 B739 222.♡.231.180
작성일 2024.11.14 22:49
1,242 조회
9 추천
쓰기

본문

아마 개발의 발단은 전에 "LLM 몇개를 쓰다보니 부담시럽..." 이라는 글로 시작했습니다.

(이전 글: https://damoang.net/free/1996156)


그냥 그때는 제공사에서 Chat 어쩌고 말고 API 로 사용하면 사용 패턴을 보았을 때

5달러로 연명이 가능하겠군! 싶어서 시작 했드렜죠.


욕심을 거듭하고 거듭하다 보니 지금은 "구현하는 김에 몇가지 프로바이더 더 붙여보자!" 해서

Anthropic (Claude 개발사), Gemini (Google), MistralAI 그리고 xAI 까지

API 문서 보면서 클라이언트 짜고 테스팅은 얼추 완료된 것 같습니다.


좋았던게 Gemini 랑 MistralAI 같은 경우에는 무료로 쓸 수 있는 부분이 있어서

쓰다가 한쪽 리밋 초과 (될 리가 없겠습니다만) 되면 기존 채팅을 다른 프로바이더

로 바꿔서 써볼 수도 있겠다는 아이디어도 생겼습니다. ㅎ


언어는 Spring 을 공부할 겸 해서 Kotlin + Spring 을 조합으로 진행중이고

WebFlux 가 좋다는 소리를 듣고 WebFlux 에 맞게 WebClient 짜서 돌리고 있습니다.


그 덕에 클라이언트도 WebFlux 에 맞게 만들어야 하다보니 손수 개발한 것 같습니다만...

그래도 배우는 것도 있으니 그리 힘들다 생각은 들지 않습니다.


다만 저 프로바이더들의 API 가 중구난방인 상태라 어느정도 Universal 하게 만들어야

하는 부분은 아직 숙제로 남아있고, Stream 을 MQ 에 집어넣고, OpenAI 호환 API 만들어서

MQ 에 들어간 메시지를 다시 빼서 OpenAI API 형식에 맞게 뱉어내는 과정도 필요합니다.


추가적으로 얼마 썼는지 통계 같은것들도 붙여줘야 하겠죠.

근데 각 프로바이더에서 얼마 썼는지는 제공하지 않아서 토큰 개수 로그만 쌓고

쓰는 중간중간에 로그 비교해보면서 얼마 썼는지는 체크하면서 맞춰가야 할 것 같습니다.


여기에 Frontend 붙여서 로그인하고 채팅하는 UI 도 만들어야 하겠죠.

일단은 단순하게 Duckduckgo AI Chat 같은 UI/UX 으로 만들어볼까 합니다.

(https://duckduckgo.com/aichat)


Spring, Kotlin 도 처음인데 사용해보니 되게 편리한게 좋습니다.

굳이 일일히 구현해서 사용할 필요가 없는게 가장 편하고, 에코시스템에서

기본적으로 제공하는 것들이 있어서 제공하는 공식 메뉴얼만 잘 읽는다는 전제

하에 크게 어려운 부분은 없는 것 같습니다.

댓글 16 / 1 페이지

곰발자국✿님의 댓글

작성자 no_profile 곰발자국✿ (119.♡.225.233)
작성일 11.14 23:02

이하아님의 댓글

작성자 no_profile 이하아 (210.♡.77.175)
작성일 11.14 23:04
서버비로 그냥 유료쓰는게 나을거같아요 ㅎㅎ

B739님의 댓글의 댓글

대댓글 작성자 B739 (222.♡.231.180)
작성일 11.14 23:11
@이하아님에게 답글 ㅋㅋㅋㅋ 근데 집에 Xeon 콤퓨타가 있어서요

뭉코건볼님의 댓글

작성자 뭉코건볼 (175.♡.111.189)
작성일 11.14 23:16
오.. 제가 정확히 동일한 서비스를 생각했었는데 실제로 구현하시는 분이 계시는군요 ㅋㅋ

이게 소규모일때에는 매출보다 비용이 클거 같은데, 규모의 경제?를 이루고 낙전 수입까지 곁들이면 마진을 남길 수도 있지 않을까 싶더라구요. 문제는 말씀하신대로.. 프로바이더 API들이 open ai 호환이 아닌 경우도 있고, 더 까다로운건 호환이긴 한데 응답 스트림 청크의 스펙 같은 부분이 미세하게 다른 경우들이 있어서 이 부분 맞춰주는게 복잡할거 같더라구요.

저는 비록 cursor의 노예이지만.. 성공적으로 개발 완료까지 이르시길 바라겠습니다 ㅎ

B739님의 댓글의 댓글

대댓글 작성자 B739 (222.♡.231.180)
작성일 11.14 23:19
@뭉코건볼님에게 답글 성공적으로 개발이 이루어지진 않을것 같은게요, Anthropic (Claude 의 개발사) 은 데이터를 파트별로 나눠서 제공합니다.

예를 들어서 Function Calling 을 사용하는 경우, 실행하고자 하는 Function 이 무엇인지를 먼저 사용자에게 문자열 Delta 로 넣어주는데, Function Calling 을 하는데 필요한 파라메터 같은 경우에는 JSON Delta 값으로 보내줘서 값을 다 받은 다음에 파싱하던지 하는 과정이 필요합니다.

예.. 뭐 귀찮은거죠. ㅋㅋㅋ

뭉코건볼님의 댓글의 댓글

대댓글 작성자 뭉코건볼 (175.♡.111.189)
작성일 11.14 23:33
@B739님에게 답글 어짜피 function calling 정도의 수준을 사용할 정도의 사용자면 이미 개별 AI 구독중이지 않을까요?
가볍게 여러 모델로 chat API 사용해보고 싶은 수요를 노려보시는게 어떨까 합니다 ㅎ

B739님의 댓글의 댓글

대댓글 작성자 B739 (222.♡.231.180)
작성일 11.14 23:46
@뭉코건볼님에게 답글 제가 쓸꺼라서요 ㅎㅎㅎ 상용화 할 생각 없습니다 ㅋ

칼쓰뎅님의 댓글

작성자 칼쓰뎅 (119.♡.210.192)
작성일 11.14 23:42
cpu로 뭔가 돌리긴 벅차지않던가요? cpu모드로는 whisper turbo였나? 만 돌려봤는데도 하세월 걸리던데요 ㅋ
제 속도로 서비스 받으려면 claude 3.5나 gpt4o 쪽이 젤 무난한거 같습니다...

로컬로 운영하는걸 생각한다면 뭐 맥미니 64GB 2개 들여서 llama 70b 같은거
올려놓는것도 괜찮을성 싶지만 가격이 ㅎㅎㅎㅎ

B739님의 댓글의 댓글

대댓글 작성자 B739 (222.♡.231.180)
작성일 11.14 23:49
@칼쓰뎅님에게 답글 Qwen 잘 치는데? 싶어서 그것도 고민했었는데요.

호스팅하는 사이트가 있길레 테스트 삼아 말좀 걸어보고 로컬 에서 돌린거랑 비교해봤는데 너무 차이가 많이나네요.

그래서 로컬 GPU 는 안하기로 결정했습니다. 저 위의 프로바이더만 써도 충분합니다. ㅎㅎ

칼쓰뎅님의 댓글의 댓글

대댓글 작성자 칼쓰뎅 (119.♡.210.192)
작성일 11.15 00:11
@B739님에게 답글 qwen은 중국어가 넘 금방 나와요 ㅋㅋㅋㅋ

B739님의 댓글의 댓글

대댓글 작성자 B739 (222.♡.231.180)
작성일 11.15 01:01
@칼쓰뎅님에게 답글 로컬에서는 잘치는데 싶다가도 호스팅에서 돌려보면 현란한 중국어가 나오죠 ㅋㅋㅋ

그만큼 컨트롤 하기가 (=잘 구슬리는게) 어려운 모델 중 하나인 것 같습니다.

근데 또 막상 테스트한 결과 보면 곧잘 하니... 구슬리는 방법을 연구해봐야 되겠습니다 ㅎㅎㅎ

https://github.com/minsing-jin/Korean-SAT-LLM-Leaderboard/blob/main/Korean_README.md

칼쓰뎅님의 댓글의 댓글

대댓글 작성자 칼쓰뎅 (119.♡.210.192)
작성일 11.15 01:25
@B739님에게 답글 오... 재밌는 결과네요. 로컬에서 돌려본건 Qwen2.5 32B 4비트 모델이라서 좀 다를듯하네요.
저 리스트중에 만만하게 로컬에서 해볼수 있는건 Meta-Llama-3.1-8B-Instruct-Turbo  같네요.
저번에 확실히 대충 써봤을때 Meta-Llama-3.1-8B-Instruct 가 좋더니만...역시 ㄷㄷㄷ

(mac이 부러웠던적이 단 한번도 없는데... ai모델 올려보면서 64gb램 가진 mac들이 부럽...ㅋㅋ)

불의정령님의 댓글

작성자 불의정령 (58.♡.25.12)
작성일 11.15 09:16
이런 서비스가 AWS의 Bedrock 이라는 서비스입니다. (최근에 서울리전에도 들어왔습니다)

B739님의 댓글의 댓글

대댓글 작성자 B739 (221.♡.154.71)
작성일 11.15 15:59
@불의정령님에게 답글 MS Azure 의 OpenAI Service 만 있는걸로만 알고 있었는데, AWS 에서 Bedrock 이라는 서비스도 있군요~

서비스 좋아 보입니다. 근데 API 를 선정함에 있어서, 저는 초기에 크레딧을 충전만 잘 해두고, 사용량을 제한해서 사용했으면 하거든요. Bedrock 계열의 서비스들이 결국에는 기업용이다 보니 "Pay-As-You-Go" (종량제) 방식으로 지불하고, 이런 것들을 컨트롤할 방법이 있다 한들 제대로 작동하지 않으니 쓰기가 꺼려집니다.

Lysithea님의 댓글

작성자 Lysithea (118.♡.13.118)
작성일 11.15 10:01
https://github.com/enricoros/big-agi
이것과 비슷하면서도 구현하시려는 기능이 약간 다르긴 하네요.. 혹시 참조가 되실까 하여 링크 걸어봅니다 ㅎㅎ

B739님의 댓글의 댓글

대댓글 작성자 B739 (222.♡.231.180)
작성일 11.15 10:39
@Lysithea님에게 답글 오 감사합니다 ㅎㅎ
쓰기
홈으로 전체메뉴 마이메뉴 새글/새댓글
전체 검색