# オンプレミス・デプロイメント

Tisaneウェブサービスは、Tisane Labsのパブリッククラウドのほか、お客様の施設内、プライベートコールセンター、またはプライベートクラウドにデプロイすることができます。

オンプレミスにインストールされるAPIメソッドは、当社のパブリッククラウドのものと同じです。（参考：[Tisane APIリファレンス](/apis/tisane-api-short)。）認証ヘッダーは必要ありません。

オンプレミスライセンスは場合に応じて発行されます。[お客様の必要事項については当社までお問い合わせください](https://tisane.ai/on-prem)。

プロセス内コンポーネントとしてのTisaneの統合については、こちらを参照：[Tisane Embedded SDKs](/sdks)

## 必要事項

**遅延読み込み**: 50 Mb固定 + 50～100 Mb（言語モデルあたり）
**完全読み込み**: 400 Mbから2 Gbの間（言語モデルあたり）

もっと読む：[遅延読み込みと完全読み込みの比較](/sdks/lazyloading)

## Linux

Linux用Tisaneウェブサービスは、ウェブサービスとして動作し、オプションでデーモンとして動作するセルフホスト実行ファイル（`tisane`）です。複数のインスタンスを、同じ言語データベース、同じマシン、同じコンフィギュレーションで実行することができます。各インスタンスは個別のポートを必要とします。

### 必要事項

Kernel バージョン6.0.0+

### コマンドライン・パラメータ

**パラメータなし**

簡単なテストを実行し、結果を出力して終了します。

**-port**

指定されたポートをリッスンしているサービスを、以下のパラメータで起動します。

* *パラメータ1*：有効なポート番号


**-parse**

1回のパースの呼び出しを起動し、その結果を以下のパラメータで出力します。

* *パラメータ1*：言語コード
* *パラメータ2*：コンテンツ
* *パラメータ3*：設定（`{}`で囲う）


**-transform**

1回の変換呼び出しを起動し、その結果を以下のパラメータで出力します。

* *パラメータ1*：ソース言語コード
* *パラメータ2*：ターゲット言語コード
* *パラメータ3*：コンテンツ
* *パラメータ4*：設定（`{}`で囲う）


**--version**

ランタイムバージョンを出力する。

### 構成

TisaneのLinux設定ファイルは[TOML形式](https://en.wikipedia.org/wiki/TOML)を使用します。すべての設定は*[main]*セクションにあります。設定は以下の通りです。

* *path*（文字列、必須） - Tisaneのデータファイルがあるフォルダ。相対パスで十分なので、同じフォルダ内であれば `./`でも有効です。
* *preload*（文字列の配列、オプション） - 起動時にすべて読み込まれる言語コード。残りは遅延読み込み（オンデマンドローディング）を使用します。複数の言語が頻繁に使用される環境でない限り、プリロードする言語モデルは1つか2つ以下にすることをお勧めします。こちらもお読みください。[遅延読み込みと完全読み込みの比較](/sdks/lazyloading)
* *daemon*（ブーリアン型、オプション） -  *true*の場合、Tisaneはデーモン（サービス）として起動されます。
* *limit*（整数、オプション） - リクエストの最大長をバイト数で指定します。


例：


```bash
[main]
path = "./"
preload = ["en", "es"]
daemon = true
```

Dockerを使用する場合は、`daemon`オプションを使用しないでください。

### インストール

`-port`パラメータを指定して起動すると、`tisane`はHTTPリクエストを受け付け、応答します。インストールするには、システム起動時に実行ファイルが起動するようにします。最も簡単な方法は、`systemd`スイートを使用することです。

Tisaneウェブサービスの複数のインスタンスを起動するため、`systemd`を設定するためのBashスクリプトを提供する：[install.sh](/assets/install.ebdd18c8e1b55848d88b64f18891a81d574b9d0b85efed12cf7367791139abc8.a532ac60.sh)

その他のBashヘルパースクリプト：

* 実行中のすべてのTisaneインスタンスを停止する：[stop.sh](/assets/stop.c29959afd378d5e35547e52b895e1ff658e298c9f82604b2234e90686d5a1d83.a532ac60.sh)
* `systemd`が管理するTisaneのインスタントを開始：[startall.sh](/assets/startall.beb101fe607f243640001bc6feff9dbfd0a592c9b96d0e47efb349b6c7f99d41.a532ac60.sh)


#### install.shパラメータ

パラメータ：

- -f : tisane zipファイルへのパス（パッケージのインストールまたはアップデート）
- -p : サービスの開始を希望する、コンマで区切られたポートのリスト
- -d : tisaneをデーモンとして実行したくない場合は、これを「simple」に設定し、設定ファイルを更新します。（このパラメータを変更しないことが推奨されます。デフォルトはデーモンのフォーキングです）
- -u : このオプションを使用すると、古いファイルをすべて消去し、実行中のサービスをすべて停止して、Tisaneを強制的にインストールしようとします。


### アップデート

アップデートするには：

1. 対象の言語データベースに接続されている、実行中のTisaneインスタンスをシャットダウンします。
2. アップデートをデプロイしてください。
3. インスタントを再度開始してください。


ご要望に応じて、配布と監視のためのその他のBashスクリプトもご利用いただけます。

## Windows

Tisane RuntimeはWindowsサービスのASP.NETアプリケーションです。Tisane Runtimeはサービスとしてのみ動作します。複数のインスタンスを異なるポートで同じマシン上で実行できます。

インスタンスがインストールされると、以下のスクリーンショットのように、Windowsサービス管理コンソールからアクセスできるようになります。

![Tisane Windows services](/assets/tisanewindowsservices.6d69769a9d8d3a2eab33327be4bca8d00b54015097783f9e5f8404559e6ee879.9bb1daa4.png)

Tisane Runtimeはセルフホストで、外部のウェブサーバー（IIS、Apache、nginxなど）を必要としません。

### 必要事項

ASP.NET Core Runtime 8+

[Download .NET 8.0](https://dotnet.microsoft.com/en-us/download/dotnet/8.0) (.NET Runtime package is required as well)

### インストール

1. ASP.NET Code 8+と.NET Runtime 8+がインストールされていることを確認してください。
2. サーバーにフォルダを作成してください（例：`C:\Tisane`）。
3. バイナリ用にサブフォルダを作成してください（例：`C:\Tisane\bin`）。
4. Tisaneバイナリと設定ファイル（`Tisane.Runtime.Service.dll.config`）を実行可能サブフォルダにコピーします。RocksDBライブラリ用の`native`サブフォルダを忘れないようにしてください。Linux版とは異なり、サービスが実行されるポートを設定するために設定ファイルに依存するため、各インスタンスは独自のフォルダを持つ必要があります。
5. `Tisane.Runtime.Service.exe -i`を実行してインストールしてください。
6. 言語モデルを設定で指定されたフォルダ（例： `C:\Tisane` or `C:\Tisane\db`）にコピーします。


#### コマンドライン・パラメータ

* `-i` - 現在のフォルダーにあるバイナリーに新しいサービスをインストールする
* `-u` - 現在のフォルダにリンクされているサービスをアンインストールする
* `-r` - 現在のフォルダにリンクされているサービスを再インストールする


### 構成

設定ファイル（`Tisane.Runtime.Service.dll.config`）は標準のConfiguration Manager形式（XML）のファイルで、Tisaneサービスの`appSettings`セクションで使用される設定が含まれています。

* `DbPath` - （必須）Tisaneのデータファイルがあるフォルダ。絶対パスは、末尾は必ず `\` or `/`にします。
* `Port` - （必須）サービスを実行するポート。使用中しないでください。
* `PreloadLanguages` - 起動時に完全にロードする言語コードのカンマ区切りリスト。残りは遅延読み込み（オンデマンドローディング）を使用します。複数の言語が頻繁に使用される環境でない限り、プリロードする言語モデルは1つか2つ以下にすることをお勧めします。こちらもお読みください。[遅延読み込みと完全読み込みの比較](/sdks/lazyloading)


例：


```xml
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
      <add key="DbPath" value="C:\Tisane\" />
      <add key="Port" value="3780" /> <!-- run on port 3780 -->
      <add key="PreloadLanguages" value="en,fr" /> <!-- preload English and French -->
   </appSettings>
</configuration>
```

### アップデート

1. すべてのTisaneサービスをシャットダウンします。外部アプリケーションがTisaneのデータファイルやバイナリにアクセスしていないことを確認してください。
2. 新しいTisaneファイルを既存のファイルの上にコピーしてください。
3. サービスを再度開始してください。


**既存の設定ファイルを上書きしない**ように注意してください。

## 推奨されるプラクティス

Tisaneはスレッドセーフなので、複数の呼び出し元が同じインスタンスに接続できます。複数の言語モデルを読み込む場合は、インスタンス数を少なくすることが有効です。それでも、同時リクエスト数を適度に保つことが推奨されます。

経験上、4コア8GBのマシンで3インスタンスがベストバランスです。