Com os avanços atuais de IA, é fácil configurar um modelo generativo de IA em seu computador para criar um chatbot.
Neste artigo veremos como você pode configurar um chatbot em seu sistema usando Ollama e Next.js
Vamos começar configurando o Ollama em nosso sistema. Visite ollama.com e baixe-o para o seu sistema operacional. Isso nos permitirá usar o comando ollama no terminal/prompt de comando.
Verifique a versão do Ollama usando o comando ollama -v
Confira a lista de modelos na página da biblioteca Ollama.
Para baixar e executar um modelo, execute o comando ollama run
Exemplo: ollama run llama3.1 ou ollama run gemma2
Você poderá conversar com a modelo diretamente no terminal.
Existem alguns pacotes npm que precisam ser instalados para usar o ollama.
Para instalar essas dependências, execute npm i ai ollama ollama-ai-provider.
Em app/src há um arquivo chamado page.tsx.
Vamos remover tudo nele e começar com o componente funcional básico:
src/app/page.tsx
export default function Home() { return ({/* Code here... */} ); }
Vamos começar importando o gancho useChat de ai/react e react-markdown
"use client"; import { useChat } from "ai/react"; import Markdown from "react-markdown";
Como estamos usando um gancho, precisamos converter esta página em um componente cliente.
Dica: você pode criar um componente separado para bate-papo e chamá-lo no page.tsx para limitar o uso do componente do cliente.
No componente, obtenha mensagens, entrada, handleInputChange e handleSubmit do gancho useChat.
const { messages, input, handleInputChange, handleSubmit } = useChat();
Em JSX, crie um formulário de entrada para obter a entrada do usuário para iniciar a conversa.
A boa ideia é que não precisamos corrigir o manipulador ou manter um estado para o valor de entrada, o gancho useChat nos fornece isso.
Podemos exibir as mensagens percorrendo o array de mensagens.
messages.map((m, i) => ({m})
A versão estilizada com base na função do remetente é semelhante a esta:
{messages.length ? ( messages.map((m, i) => { return m.role === "user" ? (You) : ({m.content} AI); }) ) : ({m.content} )}Local AI Chat
Vamos dar uma olhada no arquivo completo
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 (); }
Com isso, a parte do frontend está completa. Agora vamos lidar com a API.
Vamos começar criando route.ts dentro de app/api/chat.
Com base na convenção de nomenclatura Next.js, isso nos permitirá lidar com as solicitações no endpoint 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(); }
O código acima usa basicamente ollama e vercel ai para transmitir os dados de volta como resposta.
Execute npm run dev para iniciar o servidor no modo de desenvolvimento.
Abra o navegador e vá para localhost:3000 para ver os resultados.
Se tudo estiver configurado corretamente, você poderá conversar com seu próprio chatbot.
Você pode encontrar o código-fonte aqui: https://github.com/parasbansal/ai-chat
Deixe-me saber se você tiver alguma dúvida nos comentários, tentarei respondê-la.
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3