ks.dgoon.lee log

Setup ollama+openwebui+OpenAI/Anthropic


2024/08/03 12:34:13 #dev #nginx #ai #productivity #chatgpt #linux #server #claude #llama #openwebui #msty #llm #anthropic
Attachments:

집에 3090 RTX 꽂아놓은 서버가 한대 있다. Stablediffusion 웹 인터페이스 띄워두긴 했지만 그다지 자주 쓰진 않아서 놀린다는 느낌에 아쉬웠는데, 최근 써먹을 곳을 찾았다.

요새 chatgpt, claude 등을 열심히 쓰면서 LLM 은 생산성 부스트에 꽤 유용하게 (그리고 자주) 쓰인다는걸 깨달았다. 그래서 ollama 와 openwebui 두개를 조합하고, 내가 가진 수많은 도메인 중 하나를 연결해서 나(와 가족)이 쓸 사이트를 하나 만들었다.


1. ollama: https://ollama.com/

이름만 보면 메타에서 만든 llama 만 다루는게 아닌가 하겠지만, 모델을 공개한 여러 llm 들을 로컬에서 인퍼런스 시키는걸 쉽게 래핑해둔 프로그램이다. jupyter nb 에서도 뚝딱뚝딱 할 수야 있지만, 아무래도 다른 사람이 훌륭하게 만들어둔 바퀴를 가져다 쓰지 않을 이유는 없지. Windows, Mac, Linux 버전 모두 있고, 모델명을 넣으면 모델 다운로드부터 실행하는 것 까지 쉽게 해주고, 심지어 API 서버도(허접하니까 공개네트웍에 열어두면 안되겠지만...) 띄워준다. 지금까지 수동으로 모델 차곡차곡 저장해두고, 주피터 공책에서 코드로 다루던게 약간 억울할 정도로 잘 해뒀다. 역시 검색부터 하는게 답이었는데...

2. openwebui: https://github.com/open-webui/open-webui

chatgpt 웹과 매우 유사한 UI 를 이미 구현해두었다. OpenAI 의 API Key 를 넣어서 쓸 수도 있고, ollama 서버도 연결해 쓸 수 있다. 구현은 나이브하지만, 여러 사용자별로 계정을 만들어 사용할 수 있기도 하다. 그래서 OpenAI APIKey를 넣어 세팅하고 나와 가족들이 쓰던 chatgpt 유료구독을 모두 종료하고 여기로 갈아탈 수 있었다. API는 쓴만큼 내는 종량제인데, 지금까지 사용량과 비용 대비 유료구독 비용(X사람수) 비교해보면 갈아타는게 훨씬 이득이다. 관리하기도 쉽고.

신규 가입을 a. 막거나, b. 가입후 pending 상태로 두거나(관리자가 인증해야 사용가능), c. 가입후 바로 사용가능, 설정이 가능하니 필요할때에 신규가입 열어서 가족들 가입하라고 하고 그담에 막아두면 된다. 얼마나 보안을 잘 해놨을지 좀 걱정스럽긴 하지만, 어차피 docker 에 숨겨진 녀석이라 뭐...

그리고 ollama 로 다운로드 받은 모델들도 연결해서 쓸 수 있는데, gemma2:9b 나 llama3.1:8b 정도까지는 로컬에서 돌려볼 만 하다. 써보면 성능은 claude, chatgpt 와 비교해서 아쉽긴 한데, 로컬에서 그 이상 돌릴만한 하드웨어를 갖추는건 가성비가 안나온다. 그리고 의외로 작은 모델들도 잡다구리한 일들은 시킬만 하다. claude/chatgpt 로 코드작업 하다가 잠깐씩 사이드 작업 시킬때 괜찮음. 특히 클로드는 돈으로 해결할 수 없는 사용량 제한이 있어서 잡다한 일들은 여기로 빼면 좋다. 그리고 “생성한 파이썬 코드를 실행해볼 수 있기” 때문에 꽤나 유용함. 아래는 production 에 쓸 random key string 만드는 예시.


그리고 언제나처럼,

3. 도메인 하나 골라서 공유기에 세팅된 DDNS 주소에 CNAME 설정하기

4. 집에서 웹 트래픽 받는 서버에 nginx reverse proxy 설정

5. certbot --nginx 로 https 지원

끗!


주커버그가 llama3.1 을 공개하면서 발표한걸 들어보면, ”거대하고 강력한 하나의 중앙화된 AI 가 모든 일을 하는 것보다, 작은 크기의 AI 들이 여러곳에서 각자 돌면서 상호작용하는 생태계“ 를 비전으로 보고 있다는 걸 알 수 있다. 실제로 어떤 방식으로 미래의 AI 들이 세상에 자리잡을지는 아직 모른다. 과연 어떤 미래가 다가올까?

---

비슷한 역할(run LLMs locally, proxy for OpenAI models with API Key and so on...), 웹이 아닌 데스크탑 앱으로 만들어진 녀석도 있다. https://msty.app 이라는 녀석.


---

그리고, anthropic 도 어찌어찌 연결하여 claude 구독 해지하고 API 로 통합해서 사용 시작!



댓글 0개