JavaScript、HTML、CSS を使用した Ollama の Llama odel によるチャット アプリケーションの構築

WBOY
リリース: 2024-07-19 15:03:09
オリジナル
1281 人が閲覧しました

Building a Chat Application with Ollama

導入

このブログ投稿では、Ollama の Llama 3 モデルと対話する単純なチャット アプリケーションを作成するプロセスを順を追って説明します。フロントエンドには JavaScript、HTML、CSS を使用し、バックエンドには Express を備えた Node.js を使用します。最終的には、ユーザー メッセージを AI モデルに送信し、その応答をリアルタイムで表示する、機能するチャット アプリケーションが完成します。

前提条件

始める前に、次のものがマシンにインストールされていることを確認してください:

  • Node.js
  • npm (ノードパッケージマネージャー)

ステップ 1: フロントエンドのセットアップ

HTML

まず、チャット アプリケーションの構造を定義する、index.html という名前の HTML ファイルを作成します。

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Chat with Ollama's Llama 3</title>
    <link rel="stylesheet" href="styles.css">
</head>
<body>
    <div id="chat-container">
        <div id="chat-window">
            <div id="messages"></div>
        </div>
        <input type="text" id="user-input" placeholder="Type your message here...">
        <button id="send-button">Send</button>
    </div>
    <script src="script.js"></script>
</body>
</html>
ログイン後にコピー

この HTML ファイルには、チャット メッセージのコンテナ、ユーザー メッセージの入力フィールド、および送信ボタンが含まれています。

CSS

次に、チャット アプリケーションのスタイルを設定するために、styles.css という名前の CSS ファイルを作成します。

body {
    font-family: Arial, sans-serif;
    display: flex;
    justify-content: center;
    align-items: center;
    height: 100vh;
    background-color: #f0f0f0;
    margin: 0;
}

#chat-container {
    width: 400px;
    border: 1px solid #ccc;
    background-color: #fff;
    border-radius: 8px;
    box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
    overflow: hidden;
}

#chat-window {
    height: 300px;
    padding: 10px;
    overflow-y: auto;
    border-bottom: 1px solid #ccc;
}

#messages {
    display: flex;
    flex-direction: column;
}

.message {
    padding: 8px;
    margin: 4px 0;
    border-radius: 4px;
}

.user-message {
    align-self: flex-end;
    background-color: #007bff;
    color: #fff;
}

.ai-message {
    align-self: flex-start;
    background-color: #e0e0e0;
    color: #000;
}

#user-input {
    width: calc(100% - 60px);
    padding: 10px;
    border: none;
    border-radius: 0;
    outline: none;
}

#send-button {
    width: 60px;
    padding: 10px;
    border: none;
    background-color: #007bff;
    color: #fff;
    cursor: pointer;
}
ログイン後にコピー

この CSS ファイルにより、チャット アプリケーションがクリーンでモダンに見えるようになります。

JavaScript

フロントエンド機能を処理するために、script.js という名前の JavaScript ファイルを作成します。

document.getElementById('send-button').addEventListener('click', sendMessage);
document.getElementById('user-input').addEventListener('keypress', function (e) {
    if (e.key === 'Enter') {
        sendMessage();
    }
});

function sendMessage() {
    const userInput = document.getElementById('user-input');
    const messageText = userInput.value.trim();

    if (messageText === '') return;

    displayMessage(messageText, 'user-message');
    userInput.value = '';

    // Send the message to the local AI and get the response
    getAIResponse(messageText).then(aiResponse => {
        displayMessage(aiResponse, 'ai-message');
    }).catch(error => {
        console.error('Error:', error);
        displayMessage('Sorry, something went wrong.', 'ai-message');
    });
}

function displayMessage(text, className) {
    const messageElement = document.createElement('div');
    messageElement.textContent = text;
    messageElement.className = `message ${className}`;
    document.getElementById('messages').appendChild(messageElement);
    document.getElementById('messages').scrollTop = document.getElementById('messages').scrollHeight;
}

async function getAIResponse(userMessage) {
    // Example AJAX call to a local server interacting with Ollama Llama 3
    const response = await fetch('http://localhost:5000/ollama', {
        method: 'POST',
        headers: {
            'Content-Type': 'application/json',
        },
        body: JSON.stringify({ message: userMessage }),
    });

    if (!response.ok) {
        throw new Error('Network response was not ok');
    }

    const data = await response.json();
    return data.response; // Adjust this based on your server's response structure
}
ログイン後にコピー

この JavaScript ファイルは、送信ボタンと入力フィールドにイベント リスナーを追加し、ユーザー メッセージをバックエンドに送信し、ユーザーと AI の両方の応答を表示します。

ステップ 2: バックエンドのセットアップ

Node.js と Express

Node.js がインストールされていることを確認してください。次に、バックエンド用のserver.jsファイルを作成します。

  1. Express のインストール:

    npm install express body-parser
    
    ログイン後にコピー
  2. server.js ファイルを作成します:

    const express = require('express');
    const bodyParser = require('body-parser');
    const app = express();
    const port = 5000;
    
    app.use(bodyParser.json());
    
    app.post('/ollama', async (req, res) => {
        const userMessage = req.body.message;
    
        // Replace this with actual interaction with Ollama's Llama 3
        // This is a placeholder for demonstration purposes
        const aiResponse = await getLlama3Response(userMessage);
    
        res.json({ response: aiResponse });
    });
    
    // Placeholder function to simulate AI response
    async function getLlama3Response(userMessage) {
        // Replace this with actual API call to Ollama's Llama 3
        return `Llama 3 says: ${userMessage}`;
    }
    
    app.listen(port, () => {
        console.log(`Server running at http://localhost:${port}`);
    });
    
    ログイン後にコピー
  3. サーバーを実行します:

    node server.js
    
    ログイン後にコピー

このセットアップでは、Node.js サーバーは受信リクエストを処理し、Ollama の Llama 3 モデルと対話して、応答を返します。

結論

これらの手順に従うことで、ユーザー メッセージを Ollama の Llama 3 モデルに送信し、応答を表示するチャット アプリケーションが作成されました。このセットアップは、特定の要件と Llama 3 モデルが提供する機能に基づいて拡張およびカスタマイズできます。

チャット アプリケーションの機能を自由に探索して拡張してください。コーディングを楽しんでください!

以上がJavaScript、HTML、CSS を使用した Ollama の Llama odel によるチャット アプリケーションの構築の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート