gptel と Novita AI を使う: 包括的ガイド

gptel と Novita AI を使う: 包括的ガイド

急速に進化する AI 開発の世界では、使い慣れた開発環境に強力な言語モデルを統合することがますます重要になっています。この記事では、Emacs ベースの LLM クライアントである gptel 内で Novita AI API を活用する方法を紹介します。Novita AI の高度なモデルと gptel のシームレスな Emacs 統合を組み合わせることで、開発者は使い慣れたテキストエディタを離れることなく、AI を活用したワークフローを大幅に強化できます。

gptel とは

gptel は Emacs ユーザー向けに設計された多機能 LLM チャットクライアントです。複数のモデルとバックエンドをサポートし、あらゆる Emacs バッファでシームレスに動作します。統一インターフェースとインプレース操作により、gptel は Emacs の拡張性とアクセシビリティの理念を体現しています。内部では、gptel は Curl が利用可能な場合にそれを使用して堅牢な HTTP 機能を提供しますが、外部依存関係のない環境向けに url-retrieve もサポートしています。この二重互換性により、gptel は幅広い Emacs 設定でセットアップ可能です。

gptel の機能

https://www.youtube.com/watch?v=bsRnh\_brggM

gptel には生産性を最大化する機能が搭載されています。

  • 非同期かつ高速な処理: 応答を直接 Emacs にストリーミング。
  • マルチ LLM サポート: Mythomax、Llama、Qwen など様々なモデルから選択可能。
  • カスタマイズ可能なワークフロー: シンプルな API で gptel の動作を変更。
  • コンテキストを考慮した対話: リージョン、バッファ、ファイルを動的にクエリに追加。
  • Markdown/Org マークアップサポート: LLM の応答を効果的に整形。
  • マルチモーダルサポート: テキスト、画像、ドキュメントを扱うことが可能。
  • 会話管理: 会話の保存、再開、分岐が自由に可能。
  • インタラクティブなクエリ調整: プロンプトを送信前にプレビュー・修正可能。
  • 内省機能: クエリを送信前に検査・修正し、正確性と関連性を確保。
  • 編集可能な会話: 会話中に以前のプロンプトや LLM の応答に戻って編集可能。これらの編集はモデルにフィードバックされ、動的な調整が可能。

gptel のダウンロード方法

gptel のインストールは簡単です。

  1. Emacs パッケージマネージャを使う:
    • M-x package-install RET gptel RET を実行。
    • 安定版を使いたい場合は、パッケージソースに MELPA-stable を追加。
  2. Straight を使う:
    • 設定に (straight-use-package 'gptel) を追加。

(オプション)markdown-mode をインストールすると、整形やチャットの操作がより快適になります。

  1. 手動インストール:
    • GitHub からリポジトリをクローン。
    • リポジトリディレクトリで M-x package-install-file RET を実行。
  2. Doom Emacs を使う:
    • packages.el
      (package! gptel)

    • config.el
      (use-package! gptel :config (setq! gptel-api-key “your key”))

      “your key” は API キーそのものか、(より安全には)キーを返す関数に置き換えます。gptel-api-key の設定は必須ではありません。見つからない場合はキーを尋ねられます。

  3. Spacemacs を使う:
    • .spacemacs ファイルの dotspacemacs-configuration-layersllm-client を追加。
      (llm-client :variables llm-client-enable-gptel t)

gptel で Novita AI API にアクセス

Novita AI の API を gptel と統合することで、高度な LLM 機能が利用可能になります。

  1. 無料で Novita AI の LLM Playground で様々な LLM をテスト。
  2. Novita AI のキー管理ページに移動し、gptel で使用する LLM API キーを取得。
  3. Novita AI をバックエンドとして登録:
(gptel-make-openai "NovitaAI"
  :host "api.novita.ai"
  :endpoint "/v3/openai"
  :key "your-api-key"
  :stream t
  :models '(
    gryphe/mythomax-l2-13b
    meta-llama/llama-3-70b-instruct
    meta-llama/llama-3.1-70b-instruct))
  1. "your-api-key" を Novita AI の API キーに置き換え。
  2. Novita AI をデフォルトのバックエンドに設定:
(setq
  gptel-model   'gryphe/mythomax-l2-13b
  gptel-backend
  (gptel-make-openai "NovitaAI"
    :host "api.novita.ai"
    :endpoint "/v3/openai"
    :key "your-api-key"
    :stream t
    :models '(
      mistralai/Mixtral-8x7B-Instruct-v0.1
      meta-llama/llama-3-70b-instruct
      meta-llama/llama-3.1-70b-instruct)))

gptel の使い方

gptel のコマンドは柔軟で直感的です。

  • 一般的なクエリ: M-x gptel-send を使うと、カーソル位置までのテキストが送信されます。応答は下に挿入され、会話をそのまま続けられます。
  • 専用チャットバッファ:
    • M-x gptel で新しいセッションを開始するか、既存のセッションに切り替え。
    • C-c RET でインタラクティブにプロンプトを送信。
    • チャットセッションは簡単に保存・復元でき、一貫したワークフローが実現。
  • 動的な動作の変更: C-u M-x gptel-send を実行すると、タスクに応じて LLM プロバイダー、バックエンド、システムメッセージ等のチャットパラメーターを調整可能。
  • Org モードの拡張機能:
    • Org 見出しを使って会話を分岐し、構造化された対話を実現。
    • gptel-org-set-properties を使い、特定の見出し下でチャット設定を宣言することで、再現可能な LLM ノートブックを作成。
  • マルチモーダルサポート:
    • gptel-add-file またはトランジェントメニューからテキスト、画像、ドキュメントファイルを会話コンテキストに追加。これにより、よりリッチでコンテキストを考慮したクエリが可能に。
    • リージョン、バッファ、ファイルを必要に応じて動的に追加・削除し、コンテキストを管理。

まとめ

gptel と Novita AI API を組み合わせることで、開発者は強力で柔軟な AI 開発ツールにアクセスできます。ワークフローの改善や新しいモデルの機能の探求において、gptel と Novita AI の API はシームレスで効率的なプロセスを提供します。さあ、始めてみませんか?LLM Playground を今すぐチェックしましょう!

よくある質問

非標準的なワークフローで gptel を使えますか?

はい、gptel は gptel-request 関数を提供しており、gptel-send 以外のカスタムワークフローが可能です。

自動スクロールを有効にするには?

設定に以下を追加します:
(add-hook 'gptel-post-stream-hook 'gptel-auto-scroll)

プロンプト/応答の整形を変更するには?

特定のモードに対して gptel-prompt-prefix-alistgptel-response-prefix-alist をカスタマイズします。

gptel はメディアをサポートしていますか?

はい、gptel はテキスト、画像、ドキュメントを扱うマルチモーダルモデルをサポートしています。

チャットバッファ固有のオプションを設定するには?

トランジェントメニューを使って、バッファごとにモデル、バックエンド、ディレクティブなどのチャットパラメーターを設定できます。C-u M-x gptel-send を呼び出して、これらの設定に対話的にアクセスします。

トランジェントメニューとは何ですか?効果的に使うには?

トランジェントメニューを使うと、コンテキスト、入出力リダイレクト、クエリの設定など gptel の動作を動的に調整できます。C-u gptel-send または gptel-menu でアクセスしてください。詳細な使い方や例は GitHub リポジトリ を参照してください。非標準的なワークフローで gptel を使えますか?はい、gptel は gptel-request 関数を提供しており、gptel-send 以外のカスタムワークフローが可能です。

自動スクロールを有効にするには?

設定に以下を追加します:
(add-hook 'gptel-post-stream-hook 'gptel-auto-scroll)

プロンプト/応答の整形を変更するには?

特定のモードに対して gptel-prompt-prefix-alistgptel-response-prefix-alist をカスタマイズします。

gptel はメディアをサポートしていますか?

はい、gptel はテキスト、画像、ドキュメントを扱うマルチモーダルモデルをサポートしています。

Novita AI は、開発者がシンプルな API で AI モデルを簡単にデプロイでき、さらに手頃で信頼性の高い GPU クラウドを提供する AI クラウドプラットフォームです。