LangConnect์ Next.js ๊ธฐ๋ฐ ์น ์ธํฐํ์ด์ค์ ๋๋ค. ๋ฒกํฐ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ ๋ฌธ์ ๊ด๋ฆฌ ๋ฐ ๊ฒ์ ์์คํ ์ ์ ๊ณตํฉ๋๋ค.
LangConnect Next.js UI๋ ๊ธฐ์กด Streamlit ์ธํฐํ์ด์ค๋ฅผ ํ๋์ ์ธ Next.js 14 ์ ํ๋ฆฌ์ผ์ด์ ์ผ๋ก ๋ง์ด๊ทธ๋ ์ด์ ํ ํ๋ก์ ํธ์ ๋๋ค. ์ฌ์ฉ์ ์นํ์ ์ธ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋ฌธ์ ๊ด๋ฆฌ, ๋ฒกํฐ ๊ฒ์, API ํ ์คํธ ๋ฑ์ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
- ๐ ์ปฌ๋ ์ ๊ด๋ฆฌ: ๋ฌธ์๋ฅผ ์ฒด๊ณ์ ์ผ๋ก ๊ทธ๋ฃนํํ๊ณ ๊ด๋ฆฌ
- ๐ ๋ฌธ์ ๊ด๋ฆฌ: ๋ฌธ์ ์ ๋ก๋, ์กฐํ, ์ญ์ ๋ฐ ์ฒญํฌ ๋จ์ ๊ด๋ฆฌ
- ๐ ๋ฒกํฐ ๊ฒ์: ์๋ฏธ๋ก ์ , ํค์๋, ํ์ด๋ธ๋ฆฌ๋ ๊ฒ์ ์ง์
- ๐งช API ํ ์คํฐ: REST API ์๋ํฌ์ธํธ ํ ์คํธ ๋๊ตฌ
- ๐ ์ธ์ฆ ์์คํ : NextAuth.js ๊ธฐ๋ฐ ์์ ํ ์ฌ์ฉ์ ์ธ์ฆ
- ํ๋ ์์ํฌ: Next.js 15 (App Router)
- UI ๋ผ์ด๋ธ๋ฌ๋ฆฌ: shadcn/ui, Tailwind CSS 4
- ์ํ ๊ด๋ฆฌ: React Hooks
- ์ธ์ฆ: NextAuth.js
- ์์ด์ฝ: Lucide React
- ํ์ ์คํฌ๋ฆฝํธ: ํ์ ์์ ์ฑ ๋ณด์ฅ
- Node.js 18.0 ์ด์
- npm ๋๋ pnpm
- LangConnect API ์๋ฒ ์คํ ์ค
git clone https://github.com/jikime/next-connect-ui
cd next-connect-ui# npm ์ฌ์ฉ
npm install
# ๋๋ pnpm ์ฌ์ฉ
pnpm install.env ํ์ผ์ ์์ฑํ๊ณ ๋ค์ ํ๊ฒฝ ๋ณ์๋ฅผ ์ค์ ํฉ๋๋ค:
# NextAuth ์ค์
NEXTAUTH_URL=http://localhost:3893
NEXTAUTH_SECRET=lang-connect-server-secret
# API ์๋ฒ URL
NEXT_PUBLIC_API_URL=http://localhost:8080
API_URL=http://api:8080# npm ์ฌ์ฉ
npm run dev
# ๋๋ pnpm ์ฌ์ฉ
pnpm dev๋ธ๋ผ์ฐ์ ์์ http://localhost:3893์ผ๋ก ์ ์ํฉ๋๋ค.
docker build -t next-langconnect-ui .docker run -p 3893:3893 next-langconnect-uidocker-compose.yml ํ์ผ ์์:
version: '3.8'
services:
nextjs:
build:
context: ./next-connect-ui
dockerfile: Dockerfile
container_name: next-connect-ui
restart: always
depends_on:
- api
ports:
- "3893:3893"
environment:
API_URL: http://api:8080
networks:
- langconnect-network
networks:
langconnect-network:
driver: bridge์คํ:
docker-compose up -d- ๋ฉ์ธ ํ์ด์ง์์ ์ด๋ฉ์ผ๊ณผ ๋น๋ฐ๋ฒํธ๋ก ๋ก๊ทธ์ธ
- ๊ณ์ ์ด ์๋ค๋ฉด ํ์๊ฐ์ ์งํ
- ์ข์ธก ์ฌ์ด๋๋ฐ์์ "์ปฌ๋ ์ " ๋ฉ๋ด ํด๋ฆญ
- "์ ์ปฌ๋ ์ " ๋ฒํผ ํด๋ฆญ
- ์ปฌ๋ ์ ์ด๋ฆ๊ณผ ๋ฉํ๋ฐ์ดํฐ ์ ๋ ฅ
- "์์ฑ" ๋ฒํผ ํด๋ฆญ
- "๋ฌธ์" ๋ฉ๋ด๋ก ์ด๋
- "๋ฌธ์ ์ ๋ก๋" ํญ ์ ํ
- ์ปฌ๋ ์ ์ ํ ํ ํ์ผ ์ ๋ก๋
- ์ฒญํฌ ํฌ๊ธฐ์ ์ค๋ฒ๋ฉ ์ค์
- "์ ๋ก๋ ๋ฐ ์๋ฒ ๋" ๋ฒํผ ํด๋ฆญ
- "๊ฒ์" ๋ฉ๋ด๋ก ์ด๋
- ์ปฌ๋ ์ ์ ํ
- ๊ฒ์์ด ์ ๋ ฅ ๋ฐ ๊ฒ์ ํ์ ์ ํ
- ํ์์ ๋ฉํ๋ฐ์ดํฐ ํํฐ ์ถ๊ฐ
- "๊ฒ์" ๋ฒํผ ํด๋ฆญ
- "API ํ ์คํฐ" ๋ฉ๋ด๋ก ์ด๋
- ์๋ํฌ์ธํธ ๊ทธ๋ฃน๊ณผ ๋ฉ์๋ ์ ํ
- ํ์ํ ํ๋ผ๋ฏธํฐ ์ ๋ ฅ
- "์์ฒญ ์ ์ก" ๋ฒํผ ํด๋ฆญ
- ์๋ต ๊ฒฐ๊ณผ ํ์ธ
- ์ฒญํฌ ํฌ๊ธฐ: 100-5000์ (๊ธฐ๋ณธ๊ฐ: 1000)
- ์ฒญํฌ ์ค๋ฒ๋ฉ: 0-1000์ (๊ธฐ๋ณธ๊ฐ: 200)
- Semantic: ๋ฒกํฐ ์ ์ฌ๋ ๊ธฐ๋ฐ ๊ฒ์
- Keyword: ํค์๋ ๋งค์นญ ๊ฒ์
- Hybrid: ๋ ๋ฐฉ์์ ๊ฒฐํฉํ ๊ฒ์
- Health Check:
/health - Collections:
/collections - Documents:
/collections/{id}/documents - Search:
/collections/{id}/documents/search
์ด ํ๋ก์ ํธ๋ MIT ๋ผ์ด์ ์ค๋ฅผ ๋ฐ๋ฆ ๋๋ค.
ํ๋ก์ ํธ ๊ด๋ จ ๋ฌธ์์ฌํญ์ ์ด์ ํธ๋์ปค๋ฅผ ํตํด ๋จ๊ฒจ์ฃผ์ธ์.





