ローカルLLM(無料) Llama-3-ELYZA-JP-8BをObsidianに実装してチャット機能を実装してみた！

## モチベーション
sangminさんのTwitterをみてObsidianに生成AIを入れてMarkdown管理してみたいと思ったので、やってみました！
3時間で実装できました！

https://x.com/gijigae/status/1827372493621113064

## 動作環境
- windows11
- CPU Intel Core i7-13700KF
- GPU NVIDIA GTX 4060 (VRAM 12GB)
## 1．Obsidianと必要なプラグインをインストールする
1. どちらかのサイトの通りインストールする
   - 最低限の機能でいい派 

https://qiita.com/sypn/items/808636ea3bde6bfe6de7
   
   - カスタムしたい派 

https://qiita.com/YUM_3/items/80cf5705a54f70ad7e5b
	   
- pluginsはgithubではなく、Obsidian Plugins ページからインストールするほうが楽。
	
https://obsidian.md/plugins 

    
## 2. Llama-3-ELYZA-JP-8Bをobsidianでも使えるようにセットアップする
1. ollamaをインストール　https://ollama.com/
2. 以下サイトを参考に、Llama-3-ELYZA-JP-8Bをインストール
	
 https://qiita.com/s3kzk/items/3cebb8d306fb46cabe9f

3. 試しにOllamaが使えるかOllamaのサイトに載っているllama2で実行/動作確認してみる(飛ばしてもOK)
    - Ollama での Llama2 の実行
    ```
    ollama run llama2:7b-chatpulling
    ```
    ```
    >>> who is ohtani shohei?
    
    Ohtani Shohei (大谷翔平) is a Japanese professional baseball player who currently plays as a pitcher and batter
    for the Hanshin Tigers in Nippon Professional Baseball (NPB). He is widely regarded as one of the greatest players
    in Japanese baseball history, known for his exceptional skill on both the mound and at the plate.
    ```
4. Llama-3-ELYZA-JP-8Bのインストール 
	- ModelFileと.ggufファイルのフォルダ構造。同じディレクトリに置くと楽。
5. Ollamaモデルの作成
```
ollama create elyza:jp8b -f Modelfile
```
6. モデルの実行
```
ollama run elyza:jp8b
```
7. Llama-3-ELYZA-JP-8Bモデルでコマンドラインでチャットしてみる

```
code\local_llm\Llama-3-ELYZA-JP>ollama run elyza:jp8b
>>> 大谷翔平とは？
大谷翔平（おおたに しょうへい）は、日本のプロ野球選手です。北海道日本ハムファイターズに所属し、投手と打者二刀流でプ
レーしています。
```
8. `nomic-embed-text`のダウンロードとインストール
https://ollama.com/library/nomic-embed-text
```
ollama pull nomic-embed-text
```
9. obsidian に Copilot プラグインをインストールする。
	- 参考： 

https://testxlog-3456.xlog.app/%E5%9C%A8obsidian%E4%B8%AD%E7%94%A8copilot%E6%8F%92%E4%BB%B6%E6%9D%A5%E4%B8%8E%E6%9C%AC%E5%9C%B0%E8%B5%84%E6%96%99%E5%AF%B9%E8%AF%9D?locale=ja

 - ollama を終了する
    - タスクマネージャーからすべての実行中の ollama を終了する。
    - Copilot のPluginsをインストール
	-  obsidianの設定→Copilot
	 1. デフォルトのモデルを`ollama(local)`に設定![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964448/2e0d3474-e1e5-bc31-f449-0638f472fd05.png)
[image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964448/fbd63866-1de1-1e15-a4c5-a29b1af22e89.png)
	2. Embedding Modelsをnomic-embed-textに設定![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964448/84e99071-563a-4d32-09f1-a23af0d9967c.png)
![[Pasted image 20240825181619.png]]
	3. ollama モデルを elyza:jp8bに設定![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964448/454623d7-a27a-0ef1-a56e-7a9725f63afc.png)
	4. savere loadする
3. obsidianでのLlama-3-ELYZA-JP-8Bを使ってチャットしてみる。
1. サーバの起動
    ```
    set OLLAMA_ORIGINS=app://obsidian.md*
    ```
    ```
    ollama serve
    ```
2. 実行してみる
うそじゃん。。。。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964448/1e635b76-b286-8c83-52b9-c3f4da0a7801.png)

## 感想
- 達成感あって楽しかった。ローカルLLMを初めて触れてよかった
- 日本語だとChatgpt4.0のほうがだいぶ賢い
- 元のllama3だと結果は違うかも
- 無料や機密事項をあつかう場合はアリだけど、ChatGPTを使うほうがクオリティは高い
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2964448/968165d9-2401-b962-391a-f0d62a76a7f0.png)

## 追記
- llama3.1を入れて大谷翔平を再チャレンジしてみた

https://ollama.com/library/llama3.1

```
ollama run llama3.1
```
```
set OLLAMA_ORIGINS=app://obsidian.md*
```
```
ollama serve
```
## iphoneとの同期

https://qiita.com/moromi25/items/d20a0ed989499faaf0fa#windows-github%E3%81%AE%E3%83%AA%E3%83%9D%E3%82%B8%E3%83%88%E3%83%AA%E3%81%A8obsidian%E3%81%AE%E5%90%8C%E6%9C%9F