カテゴリー: AI

  • MineCraftでAIとコンピュータを作成する

    まえがき

    私はかつてMineCraftで想像的な遊びを行うのはなかなか難しいと考えていました。

    YouTubeでAIのbotを使用している人やレッドストーンコンピュータを作成している人の動画を見て興奮したのを覚えています。

    これこそが自分にとって興味を湧き立てられるトピックであると感じました。

    YouTubeへ投稿した動画

    私は、これまでのAIツール作成のノウハウを活用してMineCraft上で想像的な遊びをもっとできることに気がついてしまいました。

    画面録画して、簡単な編集を行い、その様子をYouTubeにアップしています。

    AIボット同士が会話を行い、自律的に行動しています。初めてこの光景を見た時は、かなりの衝撃を受けました。

    GitHubのリンクからmodをダウンロードすることができます。

    modの設定方法に関するYouTube動画はこちらです。

    modのカスタマイズ性

    modは自由にカスタマイズが可能です。ソースコードを開くとAIモデルやボットを調整可能であることがわかりました。

    私が驚いたことは、このソースコードはついこの間までに作成していたAIのアプリケーションにそっくりだということです。

    AIがどのモデルを使うのか、エラーハンドリングの方法など。基本的な部分は簡単に理解することができました。

    まだ技術的に厳しい高度な内容だと、記憶管理やタスク管理といった機能があります。modに搭載されている優秀な機能によってAIの自律的な行動が可能になっています。

    これらを理解し、応用すればアプリケーションもより高度になります!

    ClaudeCodeを活用する

    さて、これだけの機能を兼ね備えたmodはどのように修正していくことが望ましいでしょうか?

    私は以前のアプリケーション開発で単発の依頼に限界を感じていました。調査・設計・コーディングは非常に重要なステップであり、高い効果を実感しています。

    ClaudeCodeは優秀な機能ですが、ClaudeCodeを活用してコーディングまでのステップを意識することでこのmodをさらに進化させることができます。自分でゲームをカスタマイズでき、AIを高度に扱えることは非常に素晴らしい経験です。

    • 音声モデルのカスタマイズ
    • エージェント機能の実装

    これらのアプリ開発で得た知見やソースコードを元にClaudeCodeで指示出しを行いました。

    現在はバグはまだあるものの、非常に優秀な機能を搭載させることができています。

  • Claude4の登場(2025/05/23)

    Claude4の登場(2025/05/23)

    Claude4シリーズ

    Anthoropic社の発表により、Claude4シリーズの発表がありました。前回から約3ヶ月ぶりの新モデル発表となりました。

    AIのモデルの進化スピードは加速してきているので、早速キャッチアップしていきたいと思います。

    発表動画のまとめ

    今回の発表に関連する動画をまとめておこうと思います。

    モデル

    • Claude Opus4
    • Claude Sonnet 4

    Claude Code

    ClaudeCodeは VsCodeとGitHubと連携ができるようになりました。

    Cursorと統合することで、普段と同じように開発を続けることが可能です。

  • IT LIFE -AI Agent-

    IT LIFE -AI Agent-

    イントロダクション

    2025年からAIの技術に興味を持ち、APIを使ったアプリケーションを作成したいと考えていました。ChatGPTやGeminiなどの複数のアプリケーションを使用していましたが、1つの場所で複数のモデルを使用したいと思うようになりました。そこで、興味本位から自己学習の一環としてChatGPTを模倣したアプリケーションを作成しました。

    ソースコードは今後GitHub上に公開する予定です。

    まだまだ未完成の機能が多いですが、たくさんのAIモデルに対応しているため、AIのWrapperとしてはかなり面白いのではないかと思います。

    プロジェクトの概要

    このサイトは、ChatGPT、Gemini、Claudeなど複数のAIモデルに対応し、ユーザーが自由にモデルを選択して対話できるウェブアプリです。ReactとNode.jsをベースに構築し、APIを介して各AIモデルと連携するアーキテクチャを採用しています。ストリーム出力・推論モデルの思考過程の出力(一部モデル)に対応しています。

    開発の過程では、AIの生成したコードやAIのフィードバックを受けながらコーディングを進めました。

    各種APIやAIモデルを使用するにあたり、公式ドキュメントは徹底して読み込むことにし、作業を進めました。

    主要機能の紹介

    使用するAIのモデルを選択する

    デフォルトで選択可能なAIモデルは、左上のモデル名の下矢印を押すことで選択が可能になります。

    ChatGPT,Gemini,Grok,Claude,DeepSeekの様々なモデルを使用することが可能です。

    2025年4月13日時点では、以下のモデルに対応しています。

    OpenAIGPT-4o(ChatGPTで使用されているモデル)
    GPT-4o-mini
    O1-mini
    O3-mini
    GPT-4.5 (プレビュー版)
    GeminiGemini-2.5-pro
    Gemini-2.0-flash
    Gemini-2.0-falsh-thinkng
    ClaudeClaude-3.7-sonnet
    Claude-3.7-sonnet-thinking
    GrokGrok3
    Grok3-fast
    Grok3-mini
    Grok3-mini-fast
    DeepSeekDeepSeek-V3
    DeepSeeek-R1

    ウェブ検索機能

    OpenAIの「web-search-tools」を使用することで、ウェブ検索が可能になりました。この機能はResponseAPIを使用しています。
    検索を実行した際に、検索のソースが画面に表示されます。

    こちらの機能は動作の安定化のために、今後調整を行なっていきます。

    ResponseAPIについては、こちらの記事で紹介をしています。

    ストリーム出力

    ストリーム出力に対応しているモデルに関しては、どのモデルを選択した場合でも、ストリーム出力されるようにしています。DeepSeek-R1の推論モデルのストリーミング出力にはかなりこだっています。

    音声の出力

    実装済みですが、非公開にしている機能に「音声」機能があります。出力されるテキストを読み上げてくれます。

    OpenAIの「TTS-1 HD」モデルを使用した、最新の高品質な音声モデルを採用しながら、音声の波形を表示させることで再生箇所を選びやすくしています。

    DeepResearch

    唯一、LangGraphを使用した機能になっています。以下のステップで高品質な文章生成を目指して作成しました。

    • 検索クエリ作成
    • ウェブ検索・再検索
    • 下書き
    • 記事の作成


    それぞれ別のモデルを使うようにしてみました。まだ完成度が低いため、非公開にしています。

    技術的な学びや成果

    元々、技術的にはHTML,CSS,Javascriptの基本的知識程度しかなかったのでプロダクトを作成できるとは思っていませんでした。AIを活用することで、そこからたくさんの学びを得ることができました。

    エンドポイントやAPIの利用、Reactの使い方など、今まで触れることのなかった領域の知識を得ることができました。

    LangGraphを使ってエージェント機能を実装していますが、ノードの設定を行うだけで並列実行させられる部分はメンテナンスが楽になることから大変面白い発見でした。

    何より、新しいモデルが発表されるたびに自分のアプリケーション上で使用できるようになることは非常に楽しみとなっています。

    今後の展望

    今後は、単に複数のモデルを使用できるだけではAIを使いこなせずに終わってしまいます。エージェント機能の開発に注力し、AIが相互に連携してより高精度なアウトプットを出力できる方向を目指していきたいと考えています。

    • プロンプト管理機能
    • メモリー機能
    • MCP接続機能

    実装難易度が硬い機能がたくさん未実装なのですが、少しずつアプリケーションのエージェント化に向けて進めていきたいです。

  • OpenAI Agent SDKでアプリを構築する

    OpenAI Agent SDKでアプリを構築する

    まえがき

    OpenAIから開発者向けにAgent SDKが発表されたました。これを機にpythonとReactでゼロからアプリ構築をしていきたいと思います。今回は、シンプルなチャットアプリを構築していきます。

    ファイル作成

    フロントエンドファイルの作成

    ルートディレクトリでコマンドを入力します。

    npx create-react-app frontend

    インストール完了後、以下のコマンドを入力してクライアントを起動します。

    cd frontend
    npm start

    バックエンドファイルの作成

    cd ..
    mkdir backend
    cd backend
    touch main.py

    main.pyファイルを作成したら以下のソースコードを貼り付けます。

    from agents import Agent, Runner
    
    agent = Agent(name="Assistant", instructions="You are a helpful assistant")
    
    result = Runner.run_sync(agent, "Write a haiku about recursion in programming.")
    print(result.final_output)
    
    # Code within the code,
    # Functions calling themselves,
    # Infinite loop's dance.

    次に、agent SDKをインストールしていきます。

    pip install openai-agents

    インストールが完了したら、OpenAIのAPIキーをターミナル上にExportします。

    export OPENAI_API_KEY=your_api_key

    最後に、以下のコマンドでバックエンドの実行を確認します。

    python main.py

    Runner Agent

    Runnerクラスでエージェントの実行を行います。

    from agents import Agent, Runner
    
    async def main():
        agent = Agent(name="Assistant", instructions="You are a helpful assistant")
    
        result = await Runner.run(agent, "Write a haiku about recursion in programming.")
        print(result.final_output)
        # Code within the code,
        # Functions calling themselves,
        # Infinite loop's dance.

    ストリーミング出力を行っている場合は、 RunResultStreamingがエージェントの実行結果に含まれています。

    以下のコードが呼び出し方法の参考になります。

    import asyncio
    from openai.types.responses import ResponseTextDeltaEvent
    from agents import Agent, Runner
    
    async def main():
        agent = Agent(
            name="Joker",
            instructions="You are a helpful assistant.",
        )
    
        result = Runner.run_streamed(agent, input="Please tell me 5 jokes.")
        async for event in result.stream_events():
            if event.type == "raw_response_event" and isinstance(event.data, ResponseTextDeltaEvent):
                print(event.data.delta, end="", flush=True)
    
    
    if __name__ == "__main__":
        asyncio.run(main())

    Response API (Web Search Tool)

    ResponseAPIを使って検索機能を実装します。

    import openai from OpenAI
    
    client = OpenAI (
        api_key = "XXXXXX"
    )
    
    response = client.response.create(
        model="gpt-4o",
        tools=[{"type": "web_search_preview"}],
        input="2025年3月14日の政治の事件は?",
    )
    #APIの結果全てを取得する場合
    print(response)
    #テキストのみ取得する場合
    print(response.output_text)
    Response(id='XXXXXXXXXXX', created_at=1742000929.0, error=None, incomplete_details=None, instructions=None, metadata={}, model='gpt-4o-2024-08-06', object='response', output=[ResponseFunctionWebSearch(id='ws_67d4d32239fc8192b80a8ff92c37cdd0027548a8deef9e5f', status='completed', type='web_search_call'), ResponseOutputMessage(id='YYYYYYYYYYYYYYY', content=[ResponseOutputText(annotations=[AnnotationURLCitation(end_index=192, start_index=102, title='シリア暫定憲法を承認\u3000正式な政権移行に5年\u3000表現の自由や女性の権利も盛り込まれる (2025年3月14日掲載) - ライブドアニュース', type='url_citation', url='https://news.livedoor.com/topics/detail/28341151/?utm_source=openai'), AnnotationURLCitation(end_index=331, start_index=251, title='2025年3月14日のヘッドラインニュース - GIGAZINE', type='url_citation', url='https://gigazine.net/news/20250314-headline/?utm_source=openai'), AnnotationURLCitation(end_index=522, start_index=432, title='トランプ政権、「出生地主義」制限で最高裁に申し立て (2025年3月14日掲載) - ライブドアニュース', type='url_citation', url='https://news.livedoor.com/topics/detail/28341057/?utm_source=openai'), AnnotationURLCitation(end_index=715, start_index=625, title='北朝鮮が自民党の改憲推進に警告\u3000韓米日安保協力を非難 (2025年3月14日掲載) - ライブドアニュース', type='url_citation', url='https://news.livedoor.com/topics/detail/28341246/?utm_source=openai'), AnnotationURLCitation(end_index=899, start_index=788, title='石破首相、改めて「違法性はない」~商品券配布問題(2025年3月14日掲載)|日テレNEWS NNN', type='url_citation', url='https://news.ntv.co.jp/category/politics/08c6b04760d444e88c165308d4952c5b?utm_source=openai')], text='2025年3月14日には、以下の政治的な出来事が報じられました。\n\n**シリアの暫定憲法承認**\n\nシリアのシャラア暫定大統領は、正式な政権への移行期間を5年と定める暫定憲法草案に署名し、承認しました。 ([news.livedoor.com](https://news.livedoor.com/topics/detail/28341151/?utm_source=openai))\n\n**日本の政治家襲撃事件**\n\nNHK党の立花孝志党首が、財務省前でナタを持った男に襲われる事件が発生しました。 ([gigazine.net](https://gigazine.net/news/20250314-headline/?utm_source=openai))\n\n**米国の出生地主義制限に関する最高裁への申し立て**\n\nトランプ米政権は、米国で生まれればほぼ無条件で米国籍を得られる「出生地主義」を大幅に制限する大統領令を認めるよう、最高裁に申し立てました。 ([news.livedoor.com](https://news.livedoor.com/topics/detail/28341057/?utm_source=openai))\n\n**北朝鮮による日本の改憲推進への警告**\n\n北朝鮮の朝鮮中央通信は、日本の自民党が戦力保有と交戦権を認めない「平和憲法」の改正を推進しようとしていることを指摘し、韓米日の安全保障協力を非難しました。 ([news.livedoor.com](https://news.livedoor.com/topics/detail/28341246/?utm_source=openai))\n\n**石破首相の商品券配布問題**\n\n石破首相が自民党新人議員に10万円相当の商品券を配っていた問題で、首相は「違法性はない」と強調しました。 ([news.ntv.co.jp](https://news.ntv.co.jp/category/politics/08c6b04760d444e88c165308d4952c5b?utm_source=openai))\n\nこれらの出来事が、2025年3月14日に報じられた主な政治的なニュースです。 ', type='output_text')], role='assistant', status='completed', type='message')], parallel_tool_calls=True, temperature=1.0, tool_choice='auto', tools=[WebSearchTool(type='web_search_preview', search_context_size='medium', user_location=UserLocation(type='approximate', city=None, country='US', region=None, timezone=None))], top_p=1.0, max_output_tokens=None, previous_response_id=None, reasoning=Reasoning(effort=None, generate_summary=None), status='completed', text=ResponseTextConfig(format=ResponseFormatText(type='text')), truncation='disabled', usage=ResponseUsage(input_tokens=331, output_tokens=536, output_tokens_details=OutputTokensDetails(reasoning_tokens=0), total_tokens=867, input_tokens_details={'cached_tokens': 0}), user=None, store=True

  • BrowserUseを実行するためのセットアップ方法

    BrowserUseを実行するためのセットアップ方法

    以下では、Gemini API (google-generativeai, langchain-google-genai) と browser-use を組み合わせて活用するための手順や実行方法をご紹介します。仮想環境の作成からサンプルコードの実行例までを網羅した内容になっていますので、ぜひ参考にしてください。

    はじめに

    今回の目的は、Google Generative AI (Gemini) と LangChain の連携に加えて、ブラウザ自動操作エージェントである browser_use を利用する方法を解説することです。
    以下の内容は Python の仮想環境(venv もしくは virtualenv)を使用することを前提としています。仮想環境を使うことで、プロジェクトごとにパッケージ管理を分離でき、環境汚染を防ぐことができます。

    my_project/
    ├── .env                   # APIキーなどの環境変数を設定
    ├── run_agent.py           # 実行コード (例のスクリプトを配置)
    ├── requirements.txt       # インストールが必要なライブラリ一覧(任意)
    ├── myenv/                 # venv または virtualenv で作成した仮想環境のディレクトリ
    │   ├── bin/               # (macOS/Linux)実行ファイルが入る
    │   ├── Scripts/           # (Windows)実行ファイルが入る
    │   ├── include/           
    │   ├── lib/
    │   └── ...
    └── ...

    仮想環境の準備

    venv の場合(Python 3.3以降)

    Python が標準で備えている venv モジュールを使う手順です。

    python3 -m venv myenv

    コマンド実行後、フォルダ構成として myenv ディレクトリが作成されます。
    myenv の部分は任意の名前に変更できます。

    virtualenv の場合

    あらかじめ virtualenv のインストールが必要です。

    pip install virtualenv
    virtualenv myenv

    こちらも myenv は任意のディレクトリ名に置き換えて構いません。

    仮想環境のアクティベート(有効化)

    macOS / Linux の場合

    source myenv/bin/activate

    Windows の場合

    myenv\Scripts\activate

    アクティベートに成功すると、ターミナルやコマンドプロンプトの先頭に (myenv) のような表示が追加されます。

    必要なライブラリのインストール

    仮想環境が有効になっている状態で、以下のコマンドを実行します。

    pip install -U google-generativeai langchain-google-genai browser-use python-dotenv
    playwright install

    各ライブラリの役割

    • google-generativeai: Google の Gemini API を利用するためのライブラリ。
    • langchain-google-genai: LangChain フレームワークから Gemini API を呼び出すための拡張ライブラリ。
    • browser-use: ブラウザ操作を自動化するエージェント機能を提供するライブラリ。
    • python-dotenv: .env ファイルから環境変数を読み込むために利用。

    browser-use をインストールすると、依存しているライブラリ(aiohttp, beautifulsoup4, pyppeteer など)も自動的にインストールされます。また、langchain-google-genai には langchain が含まれるため、個別に langchain をインストールする必要はありません。

    Python コード例

    以下のサンプルコードは、引数で受け取ったタスクを Google Generative AI (Gemini) に投げかけ、結果を出力すると同時に、browser-use エージェントによるブラウザ操作が組み合わされたタスクを実行できます。

    import argparse
    import asyncio
    from browser_use import Agent
    from langchain_google_genai import ChatGoogleGenerativeAI
    import os
    from dotenv import load_dotenv  # .env ファイルを読み込むため
    
    # .env ファイルを読み込む
    load_dotenv()
    
    # 環境変数 GOOGLE_API_KEY が設定されているか確認
    if not os.environ.get("GOOGLE_API_KEY"):
        raise ValueError("環境変数 GOOGLE_API_KEY が設定されていません。")
    
    
    def parse_args():
        parser = argparse.ArgumentParser(description="Run AI agent with a custom task.")
        parser.add_argument("--task", type=str, required=True, help="Task for the AI agent.")
        return parser.parse_args()
    
    
    async def main():
        args = parse_args()
    
        agent = Agent(
            task=args.task,
            llm=ChatGoogleGenerativeAI(
                model="gemini-1.5-pro",
                convert_system_message_to_human=True,
                temperature=0,  # 出力多様性(創造性)の調整
            ),
        )
        result = await agent.run()
        print(result)
    
    
    if __name__ == "__main__":
        asyncio.run(main())

    .envファイルについて

    上記のコードでは、.env ファイルに GOOGLE_API_KEY を設定し、python-dotenv を使って読み込む想定です。
    .env ファイルはプロジェクト直下などに作成し、以下のように API キーを記述してください。

    GOOGLE_API_KEY=YOUR_GOOGLE_API_KEY

    YOUR_GOOGLE_API_KEY はご自身のキーに置き換えてください。

    実行方法

    仮想環境をアクティブにした状態で、上記コードを run_agent.py というファイル名で保存している場合、以下のように実行できます。

    python run_agent.py --task "ChatGPTのモデルの情報を調べてください。"

    実行例では、"ChatGPTのモデルの情報を調べてください。" というタスクを渡しています。
    結果として、バックエンドでは Gemini API を用いた応答が実行され、ターミナル上に結果が表示されます。

    仮想環境から抜ける方法

    作業が終了したら、次のコマンドで仮想環境から抜けられます。

    deactivate

    まとめ

    これで、Gemini API と browser_use の環境構築から実行までが完了します。LangChain をはじめとした関連ライブラリは自動的にインストールされるため、追加のインストールは不要です。ぜひこれをベースにさまざまなタスクを自動化・エージェント化してみてください。

    OpenAIのAPIを使ったシンプルな実装方法はこちらのサイトを確認してください。

    GitHubで詳細を確認することも可能です。

  • APIウェブアプリケーションの作り方

    APIウェブアプリケーションの作り方


    概要

    今回、ウェブアプリケーションを作成する上で使用するAPIはGoogleが提供するGemini 1.5 Proです。


    Gemini 1.5 Pro は次世代の大規模言語モデル(LLM)で、優れた自然言語生成能力を持っています。この記事では、Gemini 1.5 Pro APIを利用したシンプルなウェブアプリケーションを構築する手順を解説します。

    この記事で学べること
    • Gemini 1.5 Pro API を使うための設定方法
    • 簡単なバックエンド(Node.js + Express)とフロントエンドの実装
    • APIリクエスト・レスポンスを通じてAIとやり取りする仕組みの構築

    Gemini 1.5 Pro API の準備

    Gemini API のアクセスを取得

    1. Gemini 1.5 Pro を提供する公式プラットフォーム(例: Google Cloud Platform や独自のAPIポータル)にサインアップします。
    2. アクセス権を取得し、APIキーまたは認証情報(JSON形式のサービスアカウントなど)を発行します。
    3. 管理画面で使用制限やレートリミットを確認しておきます。

    OPEN AIやDeep Seekなど、他社のAPIでもほとんど同じようにアプリケーションを実装できます。

    API ドキュメントの確認

    Gemini 1.5 Pro API のエンドポイントや利用方法を確認します。

    たとえば、以下のようなエンドポイントがあるかもしれません:

    • POST /v1/models/gemini-1.5-pro/completions (テキスト生成用)

    • POST /v1/models/gemini-1.5-pro/chat (チャット用)

    開発環境の準備

    STEP
    プロジェクトディレクトリの作成
    mkdir my-gemini-app
    cd my-gemini-app
    STEP
    Node.jsプロジェクトの初期化
    npm init -y
    STEP
    必要なパッケージのインストール
    npm install express axios dotenv
    • express: シンプルなWebサーバーフレームワーク
    • axios: HTTPリクエストを送るためのライブラリ
    • dotenv: .env ファイルに環境変数を管理するためのライブラリ

    サーバーサイドの実装


    index.js ファイルを作成し、以下のコードを記述します。

    require('dotenv').config(); // .env ファイルから環境変数を読み込む
    const express = require('express');
    const axios = require('axios');
    
    const app = express();
    const port = 3000;
    
    // 環境変数から API キーを取得
    const GEMINI_API_KEY = process.env.GEMINI_API_KEY;
    const GEMINI_API_URL = 'https://api.gemini-platform.com/v1/models/gemini-1.5-pro/completions'; // 仮のURL
    
    // JSON リクエストボディのパース
    app.use(express.json());
    
    // フロントエンド用の静的ファイルを配信
    app.use(express.static('public'));
    
    // 動作確認用エンドポイント
    app.get('/', (req, res) => {
      res.send('Hello from Gemini 1.5 Pro app!');
    });
    
    // 質問を受け付けて Gemini API に送信するエンドポイント
    app.post('/ask', async (req, res) => {
      try {
        const userQuestion = req.body.question;
    
        if (!userQuestion) {
          return res.status(400).json({ error: 'No question provided' });
        }
    
        // Gemini 1.5 Pro API 呼び出し
        const response = await axios.post(
          GEMINI_API_URL,
          {
            prompt: userQuestion,
            max_tokens: 100,
            temperature: 0.7,
          },
          {
            headers: {
              'Authorization': `Bearer ${GEMINI_API_KEY}`,
              'Content-Type': 'application/json',
            },
          }
        );
    
        const answer = response.data.choices[0].text.trim();
        res.json({ answer });
      } catch (error) {
        console.error('--- Gemini API Error ---');
        if (error.response) {
          console.error('Status:', error.response.status);
          console.error('Data:', error.response.data);
        } else {
          console.error('Message:', error.message);
        }
        res.status(500).json({ error: 'エラーが発生しました' });
      }
    });
    
    // サーバー起動
    app.listen(port, () => {
      console.log(`Server is running on http://localhost:${port}`);
    });

    フロントエンドの実装

    public/index.html の作成

    フロントエンドでGemini 1.5 Proに質問を送信する簡単なフォームを用意します。

    <!DOCTYPE html>
    <html lang="ja">
    <head>
      <meta charset="UTF-8">
      <title>Gemini 1.5 Pro Chat App</title>
    </head>
    <body>
      <h1>Gemini 1.5 Pro Chat App</h1>
      <form id="questionForm">
        <input type="text" id="questionInput" placeholder="質問を入力してください">
        <button type="submit">送信</button>
      </form>
      <div id="answer"></div>
    
      <script>
        document.getElementById('questionForm').addEventListener('submit', async (e) => {
          e.preventDefault();
          const question = document.getElementById('questionInput').value;
    
          const response = await fetch('/ask', {
            method: 'POST',
            headers: { 'Content-Type': 'application/json' },
            body: JSON.stringify({ question }),
          });
    
          const data = await response.json();
          document.getElementById('answer').innerText = data.answer || data.error;
        });
      </script>
    </body>
    </html>

    必要な環境変数の設定


    .env ファイルを作成し、以下のように記述します。

    GEMINI_API_KEY=your-gemini-api-key


    取得した Gemini APIキー をここに記載します。

    サーバーの起動と動作確認

    STEP
    サーバーの起動
    node index.js
    STEP

    ブラウザで http://localhost:3000 にアクセス。

    STEP
    フォームに質問を入力して送信ボタンを押す

    Gemini 1.5からAPI経由で回答が表示されます。

    まとめ

    node.jsとExpressを使い、APIを使用したシンプルなアプリケーションを作成できました。

    私はChatGPTやGeminiに質問しながら作成したので、かなり短時間で学習できました。

    この機能をベースにしてさらに機能を追加することもできるので、ぜひチャレンジしてみてください。

  • ChatGPTのO1 proを活用して目標設定を行う手順

    ChatGPTのO1 proを活用して目標設定を行う手順

    目標を達成するためには、具体的な計画と正しい手順が必要です。しかし、「何から始めたらいいかわからない」と迷う方も多いのではないでしょうか?
    そこで今回は、ChatGPTのO1 proを活用して、自己分析からキャリアプランの設計、目標設定までを効率的に行う方法を徹底解説します。
    本記事を読めば、AIを活用して目標設定を成功に導くための具体的な手順がわかります!

    ChatGPTのO1 proとは

    ChatGPT O1 proの特長と活用のメリット

    ChatGPT O1 proは、OpenAIが提供する高度なAIツールで、ビジネスや学習、目標達成に向けた多岐にわたるサポートが可能です。

    主な特徴

    高度な分析力: 複雑な課題も深掘りして具体的な提案を提供。

    時間効率の向上: 自分で情報を集めたり整理する手間を省ける。

    柔軟なカスタマイズ: プロンプト次第でさまざまなアウトプットが得られる。

    特に目標設定やキャリア形成においては、自己分析や行動計画の策定において大きな効果を発揮します。

    自己分析:目標設定の出発点

    「自分を知らずして、目標は立てられない」とよく言われます。自己分析は、目標達成の土台を築くために最も重要なステップです。

    自己分析のメリット

    • 強みの発見: 自分の得意分野を知ることで、活躍の場を見極められる。
    • 弱みの認識: 克服すべき課題を明確にし、成長に繋げられる。
    • 価値観の整理: 目標や行動計画がブレにくくなる。

    O1 proを活用した自己分析の手順

    【プロンプト】  
    私はITエンジニアとして3年の経験があります。これまでのキャリアで評価されてきた点と、改善が必要な課題を整理し、今後の成長に向けた具体的なアドバイスをください。
    

    得られる結果

    • 強み: 技術スキルやコミュニケーション力などの明確化。
    • 弱み: 伸ばすべきポイントの具体的な提示。
    • アクションプラン: 今後取り組むべき学習やスキル向上の提案。

    質問を具体的にすることで、O1 proからより的確な回答が得られます。

    キャリアプランの設計:理想の未来を具体化する

    自己分析を基に、中長期的なキャリアプランを設計することで、目標設定がより現実的になります。

    キャリアプランを設計するステップ

    STEP
    理想像を描く

    5年後にプロジェクトマネージャーとして活躍する。

    STEP
    必要なスキルを明確化

    リーダーシップ、プロジェクト管理スキルなど。

    STEP
    行動計画を立てる

    学習計画や実践機会を設定。

    プロンプトでキャリアプランを具体化する

    【プロンプト】  
    5年後にプロジェクトマネージャーになりたいと考えています。目標達成のために必要なスキルセットや学習計画、実践方法を提案してください。
    

    得られる結果

    • 必要なスキルや資格のリストアップ。
    • 学習リソース(オンライン講座、書籍など)の提案。
    • 実際の仕事で役立つトレーニングのアイデア。

    目標設定:SMART基準で行動計画を明確に

    SMARTとは?

    SMART基準は、実現可能で具体的な目標を設定するためのフレームワークです。

    • Specific(具体的): 明確でわかりやすい。
    • Measurable(測定可能): 成果を数値化できる。
    • Achievable(達成可能): 現実的な範囲内である。
    • Relevant(関連性): 自分の目的や価値観に沿っている。
    • Time-bound(期限がある): 時間枠が設定されている。

    O1 proでSMART目標を最適化する

    【プロンプト】  
    半年以内に○○の資格を取得し、キャリアアップを目指しています。この目標をSMART基準で具体化し、行動計画を作成してください。
    

    ChatGPT O1 proを使いこなすプロンプト設計のコツ

    良いプロンプトの作り方

    • 具体的で明確な質問をする: 例「資格取得に必要な時間の見積もりを出してください。」
    • 背景情報を共有する: 自分の状況や制約を伝える。
    • 段階的に深掘りする: 例「この計画をさらに効率化する方法はありますか?」

    ダメなプロンプト例と改善例

    • ダメな例: 「キャリアアドバイスください。」
    • 良い例: 「現在ITエンジニアで、5年後にプロジェクトマネージャーを目指したいです。必要なスキルと学習方法を教えてください。」

    実践例:O1 proを活用した目標設定プロセス

    STEP
    自己分析

    「自分の強み・弱みは何か?」

    STEP
    キャリアプラン設計

    「どのようなスキルが必要か?」

    STEP
    SMART目標設定

    「具体的な目標をどう設計するか?」

    STEP
    プロンプトで深掘り

    「追加のアドバイスや改善策をもらう。」

    AIを味方につけて目標を達成する

    ChatGPTのO1 proを活用することで、上記のステップを効率的に進められます。

    今すぐChatGPT O1 proを試して、目標設定を始めてみましょう!AIを味方につけて、理想の未来を掴み取る第一歩を踏み出してください。

  • 12 Days of Open AIの発表まとめ

    12 Days of Open AIの発表まとめ

    Day 1: OpenAI o1とChatGPT Proの正式リリース

    12月6日、OpenAIは新たなAIモデル「OpenAI o1」の正式版と、有料プラン「ChatGPT Pro」を発表しました。「OpenAI o1」は、画像アップロード機能の追加や回答速度の向上が特徴です。「ChatGPT Pro」は、月額200ドルでGPT-4oやAdvanced Voice Mode、専用のo1バージョンへの無制限アクセスを提供します。

    O1 Proの使用例は以下の記事で解説しています。

    Day 2: 強化学習型ファインチューニングの参加受付開始


    12月7日、OpenAIは「強化学習型ファインチューニング(Reinforcement Fine-Tuning)」の研究プログラムへの参加受付を開始しました。このプログラムは、特定の分野やタスクに特化したエキスパートモデルを構築する新しいアプローチを提供します。

    Day 3: 動画生成AI「Sora」の正式リリース

    12月9日、OpenAIは動画生成AI「Sora」を正式にリリースしました。「Sora」は、テキストプロンプトを入力することで短編動画を生成できる革新的なツールで、最大1080pの高解像度対応や多機能編集が可能です。

    Day 4: ChatGPTの「Canvas」機能を全ユーザーに開放

    12月10日、OpenAIはChatGPTの「Canvas」機能を全ユーザーに開放しました。「Canvas」は、文章やコードを編集・確認できる作業スペースを提供し、リアルタイムでの共同作業を可能にします。

    Day 5: ChatGPTとApple製品の完全統合

    12月11日、OpenAIはChatGPTをAppleデバイスに統合する新機能を発表しました。これにより、iPhone、iPad、Mac上でChatGPTをシームレスに利用できるようになり、Siriとの統合や執筆ツールの強化、カメラコントロールを活用した視覚データ解析が可能となります。

    Day 6: Advanced Voice Modeのビデオ通話・画面共有対応

    12月12日、OpenAIはAdvanced Voice Modeにビデオ通話と画面共有機能を追加しました。これにより、ユーザーはリアルタイムでの対話体験を大幅に向上させ、家庭や職場、趣味の場面でさらに深く活用できるようになります。

    Day 7: ChatGPTの「プロジェクト」機能を実装


    12月13日、OpenAIはChatGPTに「プロジェクト」機能を実装しました。この機能により、ユーザーは複数のタスクを一元管理し、効率的に作業を進めることが可能となります。

    Day 8: ChatGPT Searchの無料版公開


    12月14日、OpenAIはChatGPT Searchの無料版を公開しました。これにより、ユーザーはインターネット上の情報をリアルタイムで検索し、ChatGPTと連携して活用できるようになりました。

    Day 9: OpenAI o1のAPI提供開始と開発者向け特典


    12月17日、OpenAIは「OpenAI o1」のAPI提供を開始し、開発者向けの新機能を発表しました。これにより、開発者は「OpenAI o1」を自分のアプリケーションに組み込むことが可能となり、より高度なAI機能を提供できるようになります。

    Day 10: ChatGPTへの無料通話

    米国内のフリーダイヤル番号「1-800-ChatGPT(1-800-242-8478)」に電話をかけることで、ChatGPTと会話が可能です。月15分までの通話は無料で提供されています。ただし、米国外からの国際電話では利用できません。

    Day 11: アプリ連携の強化

    連携できるアプリ数がさらに増えました。NotionやMacのデフォルトアプリ(メモやテキストエディタなど)。
    連携させたアプリでは、アプリ内のテキストやソースコードについて質問することが可能になります。

    Day 12: O3とO3-miniの発表

    最終日では、2025年1月にリリース予定のO3というモデルが新たに発表されました。 9月に発表されたO1から大幅に性能が向上しており、モデルを評価する指標も新たなものへと変わりました。O1の時点でIQ130ほどあるみたいでしたが、そこからさらに進化するのは想像がつきません。

  • Difyの基本ブロックを使ったワークフロー構築

    Difyの基本ブロックを使ったワークフロー構築

    Difyのワークフローとは?

    Difyで一連の処理を自動化してアプリケーションを作成できる機能のことを指します。

    Difyのワークフローを構築するにはノード(ブロックやツール)をマップ上に配置し、各ノードを線で繋いでいくことで構築することができます。

    ブロックの種類

    現在、ワークフローで実装できるブロックは以下の10種類があります。

    • LLM
    • 知識取得
    • 質問分類器
    • IF/ELSE
    • イテレーション
    • コード
    • テンプレート
    • 変数集約器
    • パラメーター抽出
    • HTTPリクエスト

    ワークフローの構築

    今回は4つのブロックを使って構築します。

    開始

    開始ブロックは、すべてのワークフローに必要なノードです。ここで入力した値を受け取ります。

    関数

    LLM は Chatflow/Workflow の中心的なノードであり、大規模言語モデルの会話/生成/分類/処理などの能力を活用して、多様なタスクを提示された指示に基づいて処理し、ワークフローのさまざまな段階で使用することができます。

    LLMのモデルを選択することができますが、今回はデフォルトで設定されている「gpt3.5」にしています。

    LLM

    カスタムロジックの実装のために、PythonまたはNode.jsを使用してコードを記述します。

    関数の引数として使用する変数と出力用の変数を定義して使用することができます。

    
    def main(arg1: int) -> dict:
    
        return {
            "prompt" : arg1 + "に関する技術的なドキュメントを生成してください。ハルシネーションは出力しないでください。",
        }

    arg1→開始ブロックで入力された値が格納されている変数

    prompt→出力用に定義した変数

    終了

    ワークフローの最終出力コンテンツを定義します。すべてのワークフローには、実行が完了した後に最終結果を出力するために少なくとも 1 つの終了ノードが必要です。

    終了ノードはプロセスの終了点です。このノードの後にノードを追加することはできません。ワークフロー アプリケーションでは、終了ノードに到達したときにのみ結果が出力されます。プロセスに条件分岐がある場合は、複数の終了ノードを定義する必要があります。

    終了ノードは、上流ノードの出力変数を参照できる 1 つ以上の出力変数を宣言する必要があります。

    構築のポイント

    ①変数の使用

    今回のポイントはLLMに渡すプロンプトを変数にしておき、後から編数したり再利用しやすくしています。

    同様の目的であれば、「テンプレート」というブロックでも実現可能ですが個人的には関数のブロックの方が使いやすかったので今回はこのような形でワークフローを構築しています。

    ②プロンプト

    今回は、プロンプトの文章に「ハルシネーションを使用しないでください。」という一文を追加しています。これは、AppleがApple interigenceに使用しているプロンプトであり、一定の効果があるようです。

  • 【LLAMA3の特徴】LLAMA3は何が凄いのか

    【LLAMA3の特徴】LLAMA3は何が凄いのか

    圧倒的な大規模モデル

    LLAMA3は、80億パラメータと700億パラメータの2つのモデルで構成されています。このスケールメリットにより、幅広い分野での高い汎用性能が期待できます。膨大なパラメータ数により、LLAMA3はより複雑な情報を処理し、より人間らしい自然言語生成が可能になりました。

    卓越した自然言語処理能力

    LLAMA3は自然言語の理解と生成で驚異的な能力を発揮します。人間のように自然な会話や文章を生成でき、高度な推論や質問応答も可能です。要約、翻訳、テキスト生成など、多様な自然言語タスクに適用できます。

    画像の生成に関しては以下にある通り非常に高速です。

    Meta AI の画像生成が高速化され、入力と同時に画像が生成されるため、バンドのアルバム アートワーク、アパートの装飾のインスピレーション、アニメーション カスタム GIF などを作成できます。

    META公式サイトより

    多言語対応

    LLAMA3は120以上の言語に対応しており、マルチリンガルな言語モデルとして際立っています。これにより、世界中のユーザーが自身の母語で高度な言語処理を利用できるようになります。

    既存アプリとの連携

    LLAMA3はMETAAIに用いられています。META AIはMETAが先日発表したWEBサービスでCHATGPTのようなツールです。まだ日本では利用が開始されていません。

    FacebookやInstagramなどのMETA社のSNSでは、アプリ上でMETA AIにアクセスしてテキストでの会話や画像生成などの機能を利用することが可能です。

    オープンソース化による活発な開発

    LLAMA3は、オープンソースとして公開されています。これは、研究者や開発者が自由にモデルを改変し、新たな応用例を開発することを可能にします。オープンソース化により、LLAMA3の開発はより活発化することでしょう。

    これからサイトやアプリにオープンソースのAIが導入されることでAIの価格競争が起き、多くの人が安価でAIを利用できるようになるかもしれません。また、AIの開発が加速するはずです。これはオープンソースのメリットでもあります。

    今後の展望

    LLAMAはまだまだ発展途上のAIです。今後新たなトレーニング済みのモデルの発表があるようです。

    私たちの最大のモデルはパラメーターが 400B を超えており、これらのモデルはまだトレーニング中ですが、私たちのチームはその傾向に興奮しています。今後数か月にわたって、マルチモーダリティ、複数の言語で会話する機能、はるかに長いコンテキスト ウィンドウ、より強力な全体的な機能などの新機能を備えた複数のモデルをリリースする予定です。また、Llama 3 のトレーニングが完了したら、詳細な研究論文を公開する予定です。

    META公式サイトより

    これから、より高性能のLLMが発表されることに非常に期待をしております!次の発表が待ち遠しいです。