Skip to content

TeamSOBITS/ollama_python

 
 

Repository files navigation

JP | EN

Contributors Forks Stargazers Issues License

OLLAMA Python for ROS

目次
  1. 概要
  2. セットアップ
  3. 実行・操作方法
  4. マイルストーン
  5. 参考文献

概要

本レポジトリは,オフラインのローカルのみで大規模言語モデル(LLM:Large Language Models)を動かすことができるパッケージです.
処理速度はCPU/GPUで変わりますが,モデルによってはCPUでも問題なく動きます.
特に,大規模言語モデルは1単語ずつ返答が構築されていく仕組みのため,呼び出しから返答までの間に途中経過が存在することから,ROSのActionlib通信を用います.

(上に戻る)

セットアップ

ここで,本レポジトリのセットアップ方法について説明します.

(上に戻る)

環境条件

まず,以下の環境を整えてから,次のインストール段階に進んでください.

System Version
Ubuntu 20.04 (Focal Fossa)
ROS Noetic Ninjemys
Python >=3.8

Note

UbuntuROSのインストール方法に関しては,SOBITS Manualを参照してください.

(上に戻る)

インストール方法

  1. ROSのsrcフォルダに移動します.
    $ roscd
    # もしくは,"cd ~/catkin_ws/"へ移動.
    $ cd src/
  2. 本レポジトリをcloneします.
    $ git clone https://github.com/TeamSOBITS/ollama_python
  3. レポジトリの中へ移動します.
    $ cd ollama_python/
  4. 依存パッケージをインストールします.
    $ bash install.sh
  5. パッケージをコンパイルします.
    $ roscd
    # もしくは,"cd ~/catkin_ws/"へ移動.
    $ catkin_make

(上に戻る)

実行・操作方法

ここで,本レポジトリの実行方法について説明します.

(上に戻る)

モデルのダウンロード

  1. model_download.launchを起動する
    $ roslaunch ollama_python model_download.launch
  2. GUIのから使いたいモデルをダウンロードする
    モデルのダウンロードは[download]をクリックしてください.

Note

モデルはこれが全てではなく,こちらにあるものから抜選しています.(全て書くとGUIが膨大になってしまうのと,公式からの更新に対応できないため)\

もしGUIにないものをdownloadしたい場合は,model_downloader.pyの19行目にあるリストに追加してください.
既にモデルがダウンロードされている場合は削除([delete]),コピー([copy]),push([push])することができます.

Warning

モデルのダウンロードにはしばらく時間がかかります.GUIが更新されるまで待っていてください

Note

詳細や細かい操作方法などについては元ollama-pythonollamaなどを参照してください.

(上に戻る)

会話をする

  1. ollama.launchにあるmodel_nameを上のモデルのダウンロードでダウンロードしたモデルにします. 以下は,llama3を指定した一例です.
    <arg name="model_name" default="llama3"/>
  2. Serverを起動します. Actionlib通信を用いているため,返答文が生成されるまでの途中経過を確認できます.
    $ roslaunch ollama_python ollama.launch
  3. [任意]実際に呼び出してみましょう.
    • Actionlib通信(途中経過から得るモード)で呼び出す
      $ rosrun ollama_python ollama_action_client.py
    • Service通信(結果だけ得るモード)で呼び出す
      $ rosrun ollama_python ollama_service_client.py

そこで,room_name >>> をなんでもいいですが,ここではdefaultとしてみましょう. requestになにか打ち込んでみましょう.ここでは一例としてHello!と送ってみました.

Warning

CPUでは処理が遅くなってしまうため,Actionlibで途中経過を見ながら待機していたほうがいいかもしれません.

Note

事前プロンプトの設定やroom_nameについての詳細はこちらを確認してください.

(上に戻る)

マイルストーン

現時点のバッグや新規機能の依頼を確認するためにIssueページ をご覧ください.

(上に)

参考文献

(上に戻る)

Releases

No releases published

Packages

No packages published

Languages

  • Python 89.7%
  • CMake 9.9%
  • Shell 0.4%