"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Crie um bot de sugestões de filmes

Crie um bot de sugestões de filmes

Publicado em 01/11/2024
Navegar:421

Create a Movie Suggestion Bot

Tutorial do bot de sugestões de filmes

Este tutorial irá guiá-lo na configuração de um bot de sugestão de filmes que usa linguagem natural para detectar seu humor e preferências de gênero para sugerir filmes adequadamente.

1. Configure um projeto Next.js

Você pode configurar um projeto Next.js e adicionar Shadcn em cima dele, ou você pode usar o comando:

npx shadcn@latest init

Isso inicializará o projeto Next.js e o Shadcn. ?

2. Configure o CopilotKit

Use os seguintes comandos para instalar os pacotes necessários:

npm install @copilotkit/react-core @copilotkit/react-ui @copilotkit/runtime
npm install groq-sdk

Em seguida, adicione o endpoint de back-end /api/copilotkit com o seguinte código:

import {
    CopilotRuntime,
    GroqAdapter,
    copilotRuntimeNextJSAppRouterEndpoint,
} from "@copilotkit/runtime";
import { NextRequest } from "next/server";
import Groq from "groq-sdk";

// eslint-disable-next-line @typescript-eslint/no-explicit-any
const groq = new Groq({ apiKey: process.env.GROQ_API_KEY }) as any;

const copilotKit = new CopilotRuntime();

const serviceAdapter = new GroqAdapter({ groq, model: "llama3-groq-8b-8192-tool-use-preview" });

export const POST = async (req: NextRequest) => {
    const { handleRequest } = copilotRuntimeNextJSAppRouterEndpoint({
        runtime: copilotKit,
        serviceAdapter,
        endpoint: "/api/copilotkit",
    });

    return handleRequest(req);
};

3. Adicione uma ação de servidor

Para concluir a configuração do backend, só precisamos adicionar uma ação de servidor. Crie o seguinte arquivo:

// src/actions/movies.ts
"use server"

export async function fetchMovies({ query }: { query: string }) {
    const API_KEY = process.env.OMDB_API_KEY;
    const URL = `https://www.omdbapi.com/?apikey=${API_KEY}&s=${encodeURIComponent(
        query
    )}`;

    try {
        const response = await fetch(URL);
        const result = await response.json();

        if (result && result.Search) {
            return result.Search;
        } else {
            return [];
        }
    } catch (error) {
        console.error("Error fetching movies:", error);
        return [];
    }
}

4. Construa o front-end

Com o backend pronto, agora precisamos construir o frontend para este aplicativo.

Adicionar componentes Shadcn

Execute o seguinte comando para adicionar os componentes necessários:

npx shadcn@latest add card badge

Além disso, adicione o componente giratório.

Atualizar o componente da página

Agora, em src/app/page.tsx, importe os componentes e ganchos necessários:

import { fetchMovies } from "@/actions/movies";
import { Spinner } from "@/components/ui-expansions/spinner";
import { Badge } from "@/components/ui/badge";
import { Card, CardContent, CardFooter } from "@/components/ui/card";
import { useCopilotAction } from "@copilotkit/react-core";
import { CopilotChat } from "@copilotkit/react-ui";
import "@copilotkit/react-ui/styles.css";
import { Film } from "lucide-react";
import Link from "next/link";

Defina o tipo de filme

Em seguida, defina o tipo de filme:

type Movie = {
  Title: string;
  Year: string;
  imdbID: string;
  Poster: string;
};

Implementar o componente de página

Use o gancho useCopilotAction para permitir que a IA busque filmes e os exiba ao usuário. Retorne o seguinte JSX:

Viva! ? O bot de sugestões de filmes está completo.

Se você gostou do projeto, mostre algum apoio ao projeto marcando o repositório com uma estrela.

⭐ Bot de sugestão de filme estrela

Além disso, você pode seguir o Copilotkit em seu identificador X e marcar seu repositório com estrela também.

⭐ Star Copilotkit

? Siga o Copilotkit

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/komsenapati/create-a-movie-suggestion-bot-f8b?1 Se houver alguma violação, entre em contato com [email protected] para excluí-la
Tutorial mais recente Mais>

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