Harjoitus – Valmistele copilot-sovellus

Valmis

Tässä harjoituksessa sovelluskoodia laajennetaan viemällä funktioita ja luomalla verkkosovellukselle ohjelmointirajapinnan päätepisteitä, jotka suorittavat vektori- ja GPT-hakuja. Voit myös määrittää Docker-säilön paikallista käyttöönottoa varten ja valmistella sovelluksesi Azure Kubernetes -palvelua varten seuraavassa yksikössä.

Sovelluskoodin laajentaminen

  1. Avaa 06-ohjattu projekti/node.js- hakemistossa sijaitsevaload-and-vectorize-data.js

  2. Siirry kommenttiin TODO tiedoston lopussa

    // TODO: Export functions
    
  3. Korvaa moduulifunktiot ja vie ne lisäämällä seuraava koodi:

    module.exports = { getOptions, processOption, doGPTSearch, doVectorSearch };
    

    Tämä rivi paljastaa funktiot niin, että niitä voidaan käyttää sovelluksen muissa osissa.

  4. Avaaapp.js tiedosto

    Huomaa tietojen lataaminen ja vectorize-tuominen lähellä tiedoston yläreunaa

    const data = require('./load-and-vectorize-data');
    

    Voit käyttää viemiesi funktioiden käyttöä vakiolla data.

  5. Siirry kommenttiin // TODO: Extend the application code

  6. Korvaa kommentti ja lisää sovellukseen seuraava koodi:

    app.get('/getOptions', (req, res) => {
        const options = data.getOptions();
        res.json(options);
    });
    
    app.get('/doVectorSearch', (req, res) => {
        const query = req.query.q;
        const result = data.doVectorSearch(query);
        res.json(result);
    });
    
    app.get('/doGPTSearch', (req, res) => {
        const query = req.query.q;
        const result = data.doGPTSearch(query);
        res.json(result);
    });
    

    Tämä koodi luo useita päätepisteitä, joiden kanssa verkkosovellus voi toimia, ja suorittaa tarvittaessa vektorihakutoiminnot.

Paikallisen käyttöönoton luominen

Tässä tehtävässä luot sovellukselle Docker-kuvan ja suoritat projektin paikallisesti, ennen kuin luot käyttöönoton seuraavassa yksikössä. Aloitetaanpa!

  1. Luo Dockerfile-niminen tiedosto projektihakemistoon 06-guided-project/node.js

    Dockerfile määrittää, miten sovelluksesi säilötään. Dockerfile-tiedostotunniste ei ole.

  2. Avaa Dockerfile Visual Studio Codessa ja lisää seuraava sisältö:

    # Use Node.js runtime as the base image
    FROM node:latest
    
    # Set the working directory inside the container
    WORKDIR /app
    
    # Copy package.json and package-lock.json (if available)
    COPY package*.json ./
    
    # Install dependencies
    RUN npm install
    
    # Copy the rest of the application files
    COPY . /app
    
    # Expose the port that the app runs on
    EXPOSE 3000
    
    # Command to start the application
    CMD ["node", "app.js"]
    
  3. Tallenna tiedosto.

  4. Docker-kuvan luominen komennolla docker build -t vector-search-app:1.0.0

    Tämä komento käyttää Dockerfile-komentoa Docker-kuvan luomiseen sovelluksestasi. Kuvan nimi on vector-search-app.

  5. Varmista, että kuva on koontiversio -komennolla docker images

    Sinun pitäisi nähdä juuri luomasi kuva luettelossa. Kun kuva on luotu, voit suorittaa sen säilönä.

  6. Suorita säilö käyttämällä komentoa:

    docker run -p 3000:80 vector-search-app:1.0.0

    Tässä komennossa 3000 edustaa aiemmin paljastamaasi isäntäporttia ja 80 säilön porttia. Säilöportti on portti säilön sisällä, jossa sovellus toimii ja kuuntelee saapuvaa liikennettä.

  7. Käytä sovellusta siirtymällä -sovellukseen http://localhost:3000 selaimessasi.

Onnistuit luomaan, merkitsemään ja työntämään Docker-näköistiedostosi Azure-säilörekisteriin. Nyt olet valmis ottamaan kuvan käyttöön Azure Kubernetes -palvelussa seuraavassa harjoituksessa. Hyvää työtä!