오늘날의 AI 발전으로 컴퓨터에 생성 AI 모델을 설정하여 챗봇을 만드는 것이 쉬워졌습니다.
이 기사에서는 Ollama 및 Next.js를 사용하여 시스템에 챗봇을 설정하는 방법을 살펴보겠습니다.
먼저 시스템에 Ollama를 설정해 보겠습니다. ollama.com을 방문하여 OS에 맞게 다운로드하세요. 이렇게 하면 터미널/명령 프롬프트에서 ollama 명령을 사용할 수 있습니다.
ollama -v 명령을 사용하여 Ollama 버전을 확인하세요.
올라마 도서관 페이지에서 모델 목록을 확인해보세요.
모델을 다운로드하고 실행하려면 ollama run
명령을 실행하세요.
예: ollama run llama3.1 또는 ollama run gemma2
단말기에서 바로 모델과 채팅을 할 수 있습니다.
ollama를 사용하려면 설치해야 하는 npm 패키지가 거의 없습니다.
이러한 종속성을 설치하려면 npm i ai ollama ollama-ai-provider를 실행하세요.
app/src 아래에 page.tsx라는 파일이 있습니다.
그 안에 있는 모든 것을 제거하고 기본 기능 구성 요소부터 시작해 보겠습니다.
src/app/page.tsx
export default function Home() { return ({/* Code here... */} ); }
ai/react 및 React-markdown에서 useChat 후크를 가져오는 것부터 시작해 보겠습니다.
"use client"; import { useChat } from "ai/react"; import Markdown from "react-markdown";
후크를 사용하고 있으므로 이 페이지를 클라이언트 구성 요소로 변환해야 합니다.
팁: 클라이언트 구성 요소 사용을 제한하기 위해 별도의 채팅 구성 요소를 만들고 page.tsx에서 호출할 수 있습니다.
구성요소에서 useChat 후크로부터 메시지, 입력, handlerInputChange 및 handlerSubmit을 가져옵니다.
const { messages, input, handleInputChange, handleSubmit } = useChat();
JSX에서 대화를 시작하기 위해 사용자 입력을 받는 입력 양식을 만듭니다.
이에 대한 좋은 생각은 핸들러를 바로잡거나 입력 값에 대한 상태를 유지할 필요가 없으며 useChat 후크가 이를 제공한다는 것입니다.
메시지 배열을 반복하여 메시지를 표시할 수 있습니다.
messages.map((m, i) => ({m})
발신자의 역할에 따른 스타일 버전은 다음과 같습니다.
{messages.length ? ( messages.map((m, i) => { return m.role === "user" ? (You) : ({m.content} AI); }) ) : ({m.content} )}Local AI Chat
전체 파일을 살펴보겠습니다.
src/app/page.tsx
"use client"; import { useChat } from "ai/react"; import Markdown from "react-markdown"; export default function Home() { const { messages, input, handleInputChange, handleSubmit } = useChat(); return (); }
이로써 프론트엔드 부분이 완성되었습니다. 이제 API를 처리해 보겠습니다.
app/api/chat 내에 Route.ts를 생성하는 것부터 시작해 보겠습니다.
Next.js 명명 규칙에 따라 localhost:3000/api/chat 엔드포인트에 대한 요청을 처리할 수 있습니다.
src/app/api/chat/route.ts
import { createOllama } from "ollama-ai-provider"; import { streamText } from "ai"; const ollama = createOllama(); export async function POST(req: Request) { const { messages } = await req.json(); const result = await streamText({ model: ollama("llama3.1"), messages, }); return result.toDataStreamResponse(); }
위 코드는 기본적으로 ollama와 vercel ai를 사용하여 데이터를 응답으로 다시 스트리밍합니다.
개발 모드에서 서버를 시작하려면 npm run dev를 실행하세요.
브라우저를 열고 localhost:3000으로 이동하여 결과를 확인하세요.
모든 것이 올바르게 구성되면 나만의 챗봇과 대화할 수 있습니다.
여기에서 소스 코드를 찾을 수 있습니다: https://github.com/parasbansal/ai-chat
궁금한 점은 댓글로 알려주시면 답변해 드리겠습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3