1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

bonsaiを動かしてみる

1
Posted at

ubuntu docker環境でbonsaiを動かしてみた

もともとは、bonsaiで事務補佐的なことができないかと思っていたのですが、残念なことに日本語というか日本の風習がイマイチでして、例えばですが、メール案とかは全く使い物にならないレベルでした。

環境構築

前提

  • ubuntu26.04
  • docker

モデルのダウンロード

あらかじめ、modelsフォルダを作成してダウンロード

wget https://huggingface.co/prism-ml/Bonsai-4B-GGUF/resolve/main/Bonsai-4B.gguf
wget https://huggingface.co/prism-ml/Bonsai-8B-GGUF/resolve/main/Bonsai-8B.gguf
wget https://huggingface.co/prism-ml/Bonsai-27B-gguf/resolve/main/Bonsai-27B-Q1_0.gguf

Dockerfile

FROM ubuntu:24.04

# 必要なビルドツールとOpenBLASのインストール
RUN apt-get update && apt-get install -y \
    git \
    build-essential \
    cmake \
    curl \
    libopenblas-dev \
    && rm -rf /var/lib/apt/lists/*

WORKDIR /app

# PrismML 専用フォークの llama.cpp をクローンしてビルド
RUN git clone https://github.com/PrismML-Eng/llama.cpp . && \
    cmake -B build -DGGML_OPENBLAS=ON -DGGML_NATIVE=ON && \
    cmake --build build --config Release -j$(nproc)

RUN mkdir -p /app/models
EXPOSE 8080

ENTRYPOINT ["./build/bin/llama-server"]

docker-compose.yml

※Bonsai-8B.ggufの例

services:
  # ① PrismML Bonsai LLM サーバー
  bonsai-api:
    build: .
    container_name: bonsai-llm
    volumes:
      - ./models:/app/models
    # 物理2コアに合わせて -t 2、メモリ節約のためコンテキスト長 -c 2048 に設定
    command: >
      -m /app/models/Bonsai-8B.gguf
      --host 0.0.0.0
      --port 8080
      -c 2048
      -t 1
      -ngl 0
      -b 32
      -ub 16

  # ② ChatGPTライクな Web GUI 画面
  open-webui:
    image: ghcr.io/open-webui/open-webui:main
    container_name: open-webui
    ports:
      - "3000:8080"
    environment:
      - WEBUI_HOST=0.0.0.0
      - PORT=8080
      # Bonsai の OpenAI 互換 API へ自動接続
      - OPENAI_API_BASE_URLS=http://bonsai-api:8080/v1
      - OPENAI_API_KEYS=sk-no-key-required
      - ENABLE_OLLAMA_API=False
    volumes:
      - open-webui-data:/app/backend/data
    depends_on:
      - bonsai-api

volumes:
  open-webui-data:

起動

sudo docker compose up -d --build

ブラウザから

http://192.168.x.x:3000/

OpenWebUIのモデルのチェックを全部外してください

以下参照

実験

年末の挨拶メール

プロンプト:取引先向けに年末の挨拶メール案を作って
回答

以下は、取引先向けに「年末の挨拶メール」のテンプレート案です。このメールは、年末に取引先と取引員との関係を維持し、来年への期待を伝えるための丁寧で礼儀的なメッセージです。

件名: 2024年度の末年挨拶と、今後の展望へのご希望

拠下: [取引先名] 検証事務所
日付: [2024年12月25日]
担当: [お前のお名前]
拠下: [お前のお部屋・部署・所属先]

尊敬の[取引先名の担当者・担当者名]様、

2024年度が終了を迎えており、お忙しい中でのお手紙をお届けさせていただきます。

本年度は、ご支援の下、多くの成果を得られ、お会社の成長と進展に貢献できました。このような成果は、皆様の努力と協力、そして私たちの関係を築いたお手伝いが生まれたものだと、心から感謝申し上げます。

今後も、皆様の支援と協力の下で、私たちの取引先は新たな一歩を踏み出しつつあります。今後も、お会社の成長と進展を一緒に楽しんでいただけますよう、心より感謝申し上げます。

お手伝いを一切控えずに、お忙しい中でご愛顧いただけました。また来年も、よろしくお願い申し上げます。

敬具、
[お前のお名前]
[お前のお部屋・部署・所属先]
[お前のお電話番号]
[お前のおメールアドレス]

必要に応じて、以下のようなカスタマイズも可能です:

より個人的な内容:例えば、特定の取引や成果についての感謝と、今後の希望についての詳細
より簡潔なバージョン:カジュアルな挨拶向けに簡潔にまとめたバージョン
カジュアルなバージョン:取引先の関係性がより親しみやすい場合に、カジュアルなメッセージに変えることができます
必要に応じて、お手伝いいたします。お気軽にご相談ください。

プログラムの作成

プロンプト:引数を2つ与えて、その引数によって四則演算をするJavaソースを作成してください
回答

以下は、2つの整数を入力し、加法、減法、乗法、除法の四則演算を実行するJavaソースです。

✅ 要件
プロンプトによって2つの整数を入力
每つの演算の結果を表示
ディエット処理(除算0のチェック)を含めて安全に実行
✅ Javaソースコード
import java.util.Scanner;

public class FourOperations {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 引数を入力
        System.out.print("第1の整数を入力: ");
        int a = scanner.nextInt();

        System.out.print("第2の整数を入力: ");
        int b = scanner.nextInt();

        // 四則演算
        int sum = a + b;
        int difference = a - b;
        int product = a * b;
        int quotient = a / b;

        // 結果を出力
        System.out.println("加法の結果: " + sum);
        System.out.println("減法の結果: " + difference);
        System.out.println("乗法の結果: " + product);

        // 分割のチェック
        if (b == 0) {
            System.out.println("除算 by 0は許可できません。");
        } else {
            System.out.println("除算の結果: " + quotient);
        }

        scanner.close();
    }
}

✅ コンセプト
Scanner を用いて標準入力(ユーザーからの入力)を処理
基本演算は基本の+, -, *, /を使用
除算 by 0をチェックし、例外を防止
✅ 使用法
コンソールにJavaソースをコピーして保存
コンソールからjava FourOperationsを実行
2つの整数を入力
✅ 注意事項
前提条件:整数 only(浮動小数点数の入力は無効)
シンプルな実装です。必要に応じてUIを改善したり、例外処理を拡張したりできます。
必要があれば、GUI版や浮動小数点数の対応も可能です。お気軽にお知らせください!

メモリは?

使用メモリは、2.8GBくらいでしたので、資源の少ないPCでの利用ができることは間違いないのですが、ちょっと普段使いは難しいと思いました。

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?