OpenAI API で複数言語に対応した翻訳 CLI ツール translate-mcp の開発
translate-mcp は OpenAI の API を使った翻訳ツールである。CLI モードと MCP サーバーの両方の利用方法に対応している。 ファイル全体を翻訳したい場合から、AI ツールに統合して使いたい場合まで、幅広いシーンで活躍する。
translate-mcp は OpenAI の API を使った翻訳ツールである。CLI モードと MCP サーバーの両方の利用方法に対応している。 ファイル全体を翻訳したい場合から、AI ツールに統合して使いたい場合まで、幅広いシーンで活躍する。
よく使うものを例としてコードとグラフを紹介します。
まず使用するライブラリを読み込んでおきます。
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots()

fig, axs = plt.subplots(2, 3)

放物線のプロット
x = np.linspace(-1, 1, 201)
y = x ** 2
fig, ax = plt.subplots()
ax.plot(x, y)

点で放物線をプロット
fig, ax = plt.subplots()
x = np.linspace(-1, 1, 21)
y = x ** 2
ax.plot(x, y, 'o')

色をオレンジに
fig, ax = plt.subplots()
x = np.linspace(-1, 1, 21)
y = x ** 2
ax.plot(x, y, color="tab:orange")

標準の色は以下の通り
| 色 | 文字列 |
|---|---|
| 青 | tab:blue |
| オレンジ | tab:orange |
| 緑 | tab:green |
| 赤 | tab:red |
| 紫 | tab:purple |
| 茶 | tab:brown |
| ピンク | tab:pink |
| グレー | tab:gray |
| オリーブ | tab:olive |
| シアン | tab:cyan |
線の太さを 4 に設定
fig, ax = plt.subplots()
x = np.linspace(-1, 1, 21)
y = x ** 2
ax.plot(x, y, lw=4)

タイトルを Title に設定
fig, ax = plt.subplots()
ax.set_title("Title")

x 軸ラベルを Time (s) に設定
fig, ax = plt.subplots()
ax.set_xlabel("Time (s)")

y 軸ラベルを Distance (m) に設定
fig, ax = plt.subplots()
ax.set_ylabel("Distance (m)")

上端を 100 に設定
fig, ax = plt.subplots()
ax.set_ylim(top=100)

下端を -100 に設定
fig, ax = plt.subplots()
ax.set_ylim(bottom=-100)

上端を 100、下端を -100 に設定
fig, ax = plt.subplots()
ax.set_ylim([-100, 100])

左端を -100 に設定
fig, ax = plt.subplots()
ax.set_xlim(left=-100)

右端を 100 に設定
fig, ax = plt.subplots()
ax.set_xlim(right=100)

左端を -100、右端を 100 に設定
fig, ax = plt.subplots()
ax.set_xlim([-100, 100])

fig, ax = plt.subplots()
ax.grid()

縦のみグリッドを表示
fig, ax = plt.subplots()
ax.grid(axis="x")

横のみグリッドを表示
fig, ax = plt.subplots()
ax.grid(axis="y")

x 軸目盛りの設定
fig, ax = plt.subplots()
xticks = range(6)
ax.set_xticks(xticks)

x 軸目盛と目盛りラベルの設定
fig, ax = plt.subplots()
xticks = range(6)
ax.set_xticks(xticks, [f"{xtick}m" for xtick in xticks])

y 軸目盛りの設定
fig, ax = plt.subplots()
yticks = [i * 20 for i in range(6)]
ax.set_yticks(yticks)

y 軸目盛りと目盛りラベルの設定
fig, ax = plt.subplots()
yticks = [i * 20 for i in range(6)]
ax.set_yticks(yticks, [f"{ytick}%" for ytick in yticks])

x 軸目盛りの削除
fig, ax = plt.subplots()
ax.tick_params(bottom=False)

x 軸目盛りラベルの削除
fig, ax = plt.subplots()
ax.tick_params(labelbottom=False)

y 軸目盛の削除
fig, ax = plt.subplots()
ax.tick_params(left=False)

y 軸目盛りラベルの削除
fig, ax = plt.subplots()
ax.tick_params(labelleft=False)

x 軸目盛りの色を赤に設定
fig, ax = plt.subplots()
ax.tick_params(axis="x", color="tab:red")

x 軸目盛りラベルの色を赤に設定
fig, ax = plt.subplots()
ax.tick_params(axis="x", labelcolor="tab:red")

y 軸目盛りの色を赤に設定
fig, ax = plt.subplots()
ax.tick_params(axis="y", color="tab:red")

y 軸目盛りラベルの色を赤に設定
fig, ax = plt.subplots()
ax.tick_params(axis="y", labelcolor="tab:red")

縦の感覚を 0.2、横の間隔を 0.3 に設定
fig, ax = plt.subplots(3, 3)
fig.subplots_adjust(hspace=0.2, wspace=0.3)
%Cpu22 : 0.0 us, 0.0 sy, 0.0 ni,100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st

間隔を自動に設定
fig, ax = plt.subplots(3, 3)
fig.tight_layout()

PNG 形式で保存
fig, ax = plt.subplots()
plt.savefig("graph.png")
SVG 形式で保存
fig, ax = plt.subplots()
plt.savefig("svg.png")
PDF 形式で保存
fig, ax = plt.subplots()
plt.savefig("svg.pdf")
300 dpi で保存
fig, ax = plt.subplots()
plt.savefig("graph300.png", dpi=300)

sudo apt update
sudo apt install build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev curl \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev
参考: pyenv/pyenv-installer: This tool is used to install pyenv and friends.
curl https://pyenv.run | bash
# ~/.bashrc を開く
code ~/.bashrc
以下を書き込みます。
export PYENV_ROOT="$HOME/.pyenv"
[[ -d $PYENV_ROOT/bin ]] && export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
pyenv install -l
Python 3.12.2 をインストールします。
pyenv install 3.12.2
デフォルトのバージョンを Python 3.12.2 に設定します。
pyenv global 3.12.2
python -V # Python 3.12.2
Poetry のインストールは pip で行う。 (pip のアップグレードもついでに行う。)
python -m pip install --upgrade pip
pip install poetry
新規に Python プロジェクトを作成する場合は、
poetry new を実行する。
Python プロジェクトのひな形が生成される。
poetry new xxxxxxxx
既に Python プロジェクトがある場合は、poetry init
で Poetry の実行に必要な設定ファイルを追加する。
poetry init
poetry shell を実行で、
Poetry の仮想環境でシェルが起動する。
Poetry を利用して追加したパッケージが使用できる。
poetry shell
poetry add で依存パッケージを追加できる。
poetry add xxxxxxxx
poetry list コマンド一覧を表示poetry build パッケージの作成 (.tar.gz, .whl)poetry install 依存パッケージのインストールpoetry publish pypi などに作成物を公開poetry search パッケージの検索poetry run Poetry 環境でコマンドを実行poetry show 利用可能なパッケージを表示poetry update 依存パッケージのアップデートを実行Pyenv をクローンする
Pyenv のリポジトリーをクローンする。
ディレクトリーは ~/.pyenv がおすすめ。
git clone https://github.com/pyenv/pyenv ~/.pyenv
0. 高速化のための Bash 拡張をコンパイル
高速化のための Bash 拡張のコンパイルが可能。
コンパイルが失敗しても正常に動作する。
```sh
cd ~/.pyenv && src/configure && make -C src
設定 (bash)
パスとかの設定。
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.profile
echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.profile
echo 'eval "$(pyenv init --path)"' >> ~/.profile
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init --path)"
echo -e 'if shopt -q login_shell; then'
'\n export PYENV_ROOT="$HOME/.pyenv"'
'\n export PATH="$PYENV_ROOT/bin:$PATH"'
'\n eval "$(pyenv init --path)"'
'\nfi' >> /.bashrc
echo -e 'if [ -z "$BASH_VERSION" ]; then'/.profile
'\n export PYENV_ROOT="$HOME/.pyenv"'
'\n export PATH="$PYENV_ROOT/bin:$PATH"'
'\n eval "$(pyenv init --path)"'
'\nfi' >>
# Python 環境のインストール
## 依存するライブラリーのインストール
```sh
sudo apt-get update; sudo apt-get install make build-essential libssl-dev zlib1g-dev \
libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm \
libncursesw5-dev xz-utils tk-dev libxml2-dev libxmlsec1-dev libffi-dev liblzma-dev -y
pyenv install -l
コンパイル時間が長いので待つ。
CONFIGURE_OPTS="--enable-shared" pyenv install 3.9.5
pyenv versions
pyenv global 3.9.5