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を実行するためのセットアップ方法

以下では、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は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を活用して、自己分析からキャリアプランの設計、目標設定までを効率的に行う方法を徹底解説します。
本記事を読めば、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を味方につけて、理想の未来を掴み取る第一歩を踏み出してください。

AIツールを活用して簡単にウェブサイトを構築する方法

近年加速するAIツール


AI技術は近年、驚くべきスピードで進化しています。特にOpenAIがGPT-4をリリースした2023年以降、多くのAIツールが登場し、さまざまな分野で活用されるようになりました。その中でも、Webサイトの構築に特化したAIツールは大きな注目を集めています。2025年現在、AIを活用したWebサイト構築は、技術に詳しくない人でも簡単に実現できるまでに進化しています。

使用したツール


今回のWebサイト構築では、以下の2つのAIツールを使用しました。


Image FXでは、サイトデザインのイメージ画像を生成しました。このツールでは、プロンプト(指示文)を入力するだけで、直感的で高品質なデザイン案を生成してくれます。私は最初、プロンプトを「Startup Company Website」と設定しましたが、希望通りの画像を得るために合計4回修正を行いました。最終的には、モダンで洗練された企業向けのウェブサイトデザインが完成しました。

次に、V0を使用して、Image FXで作成した画像を基にWebサイトのソースコードを生成しました。このツールの強みは、生成したデザインをそのまま忠実にHTMLやCSSコードへ変換できる点です。以下のプロンプトを使用しました:

「添付画像を忠実に再現したWEBサイトを作成してください。」

V0にはプレビュー機能が搭載されているため、生成されたコードを即座に実行して確認できます。デザインが想定通りに反映されているか、細部まで確認することができました。

作成した簡易的なサイト

画像デザインとは少し異なる部分もありますが、AIツールを使用したことで、わずか10分程度で簡単なWebサイトを構築することができました。ヘッダー、ロゴ、背景画像などの要素を追加することで、さらに完成度を高めることが可能です。

実際、これほど短時間でWebサイトを形にできるのはAIツールならではの魅力です。従来の手作業でのコーディングやデザイン作業と比較して、驚異的な効率性を実感しました。

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は、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が発表されることに非常に期待をしております!次の発表が待ち遠しいです。