jarvis-ai-assistant は何をしますか?
LangChain、Ollama、Pythonを使用したパーソナルAIアシスタント。デスクトップ自動化、インテリジェントツール呼び出し、メモリ、音声操作を実現します。
概要
Jarvis AI Assistantは、LangChainエージェントフレームワークを基盤に、Ollamaを介してローカルLLMを利用するパーソナルアシスタントです。デスクトップ自動化、ツール呼び出し、メモリ機能、音声インタラクションをシームレスに統合し、開発者の生産性を向上させます。
主な機能
- デスクトップ自動化: ファイル操作、アプリケーション起動、システムコマンドの実行
- インテリジェントツール呼び出し: 自然言語から適切なツールを選択・実行
- 会話メモリ: 過去の会話を保持し、コンテキストを理解した応答
- 音声操作: 音声入力と合成音声出力によるハンズフリー操作
- LangChain統合: エージェント、チェーン、ツールのモジュール設計
前提条件
- Python 3.8以上
- Ollama のインストールと実行
- サポート対象のLLMモデル(例: llama3, mistral, codellama)
インストール
# リポジトリをクローン
git clone https://github.com/ranadheerravanam/jarvis-ai-assistant.git
cd jarvis-ai-assistant
# 仮想環境を作成(推奨)
python -m venv venv
source venv/bin/activate # Windowsの場合は venv\Scripts\activate
# 依存パッケージをインストール
pip install -r requirements.txt
設定
環境変数または設定ファイルで設定を行います。
# .envファイルを作成
cp .env.example .env
# 必要に応じて編集
主な設定項目:
OLLAMA_BASE_URL: OllamaサーバーのURL(デフォルト: http://localhost:11434)LLM_MODEL: 使用するモデル名(例: llama3)ENABLE_VOICE: 音声機能の有効/無効設定MEMORY_TYPE: メモリ種別(例: buffer, summary)
使い方
# アシスタントを起動
python main.py
起動後、テキストまたは音声で指示を入力します。
使用例
- 「今週の作業ログをまとめて」
- 「ファイルを開いて」
- 「ウェブ検索して最新のAIニュースを教えて」
アーキテクチャ
User Input (Text/Voice)
|
v
Voice Recognition (STT) / Text Input
|
v
LangChain Agent
- LLM (via Ollama)
- Tool Registry
- Memory Module
|
v
Tool Execution
- File System
- Web Search
- Shell Commands
- Custom Tools
|
v
Response Generation
- Text Output
- Voice Synthesis (TTS)
ツールの追加
カスタムツールは tools/ ディレクトリに追加します。各ツールは LangChainの Tool クラスを継承します。
from langchain.tools import Tool
class MyCustomTool(Tool):
name = "my_custom_tool"
description = "説明文"
def _run(self, query: str) -> str:
# ツールのロジック
return f"結果: {query}"
ライセンス
MIT
貢献
バグ報告や機能リクエストはGitHub Issuesでお知らせください。プルリクエストも歓迎します。