プロンプトにおけるsystem と human の関係

プロンプトにおけるsystem と human の関係

`system` と `human` の部分は、
**`ChatPromptTemplate.from_messages`** を使って
プロンプトを構築する際の役割を明確にするためのラベルです。
これは OpenAI の `ChatPromptTemplate` に準拠した形式になっています。

## **1. `system` メッセージ**

("system", "You are extracting organization and person entities from the text.")

### **役割**
– **システムメッセージ (`system`)** は、AI の振る舞いを指定するために使用される。
– ここでは **「組織や人物のエンティティを抽出する役割のAI」** であることを明示。
– 通常、モデルの動作を方向づける基本的な指示を含む。

### **意味**
> 「あなた(AI)はテキストから組織と人物のエンティティを抽出する役割を持ちます。」

## **2. `human` メッセージ**

("human", "Use the given format to extract information from the following input: {question}")

### **役割**
– **ユーザーからの入力を表すメッセージ** (`human`)。
– `{question}` はプレースホルダーで、実際の入力がここに挿入される。
– AI が処理するための具体的な指示を与える。

### **意味**
> 「以下の入力から、指定されたフォーマットを使って情報を抽出してください:{question}」

## **`system` と `human` の関係**
– **`system` メッセージ** → AI の振る舞いやタスクの定義
– **`human` メッセージ** → 実際の入力データと実行すべき処理の具体的な指示

この二つを組み合わせることで、AI に **「何をするべきか(system)」** と **「何を元に処理するか(human)」** を伝える。

## **実行の流れ**
1. **`system`**:「AI はテキストから組織と人物のエンティティを抽出する」
2. **`human`**:「具体的な入力 `{question}` に基づいて、決まったフォーマットで情報を抽出せよ」
3. AI はこのプロンプトを解釈し、テキスト内のエンティティを抽出する。

## **補足**
このプロンプトの後に `convert_to_openai_function(Entities)` を適用して、結果を `Entities` クラスのスキーマに適合させているため、出力は `names` のリスト形式で返される。

この形式を使うことで、AI はエンティティ抽出タスクを **明確なルール** のもとで実行することができる。

他の商品検索などにも使えるらしい

GPTによれば
はい、その通りです。
**`Entities` のスキーマ定義とプロンプトの `system` / `human` メッセージを変更すれば、別のケースに適用可能** です。

## **具体的な変更方法**
### **1. スキーマ (`Entities` クラス) を変更**
抽出したい情報が異なる場合、`names` の部分を適切なフィールド名・型・説明に変更すれば対応可能です。

#### **例1:地名(場所)を抽出する場合**

class Locations(BaseModel):
    """Identifying information about locations."""
    locations: list[str] = Field(
        ...,
        description="All the locations, cities, or countries that appear in the text",
    )

#### **例2:商品名を抽出する場合**

class Products(BaseModel):
    """Identifying information about products."""
    products: list[str] = Field(
        ...,
        description="All the product names that appear in the text",
    )

### **2. プロンプト (`system` / `human`) を変更**
スキーマ変更に合わせて、AI に適切な指示を与えるため `system` と `human` のメッセージも修正する。

#### **例1:地名(場所)を抽出する場合**

prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "You are extracting location names from the text."),
        ("human", "Use the given format to extract location names from the following input: {question}"),
    ]
)

#### **例2:商品名を抽出する場合**

prompt = ChatPromptTemplate.from_messages(
    [
        ("system", "You are extracting product names from the text."),
        ("human", "Use the given format to extract product names from the following input: {question}"),
    ]
)

### **3. そのまま適用**
スキーマとプロンプトを変更すれば、あとは **同じロジックで処理可能** です。

dict_schema = convert_to_openai_function(Locations)  # スキーマ変更
location_chain = prompt | llm.with_structured_output(dict_schema)
locations = location_chain.invoke({"question": question})
location_names = eval(locations['locations'])

または、商品名の場合:

dict_schema = convert_to_openai_function(Products)
product_chain = prompt | llm.with_structured_output(dict_schema)
products = product_chain.invoke({"question": question})
product_names = eval(products['products'])

## **結論**
> **スキーマ (`Entities` クラスの `names` 部分) とプロンプト (`system` / `human` メッセージ) を変更すれば、別の用途でもそのまま使える。**

`BaseModel` の型 (`list[str]`) や `description` を変更することで、抽出する対象を自由にカスタマイズ可能です。

チャンク範囲の設定

チャンク範囲の設定

重要な情報が途中でぶった切られるのを防ぐため、
chunk_overlapを設定して
チャンクと次のチャンクの範囲をある程度重複させて分割

# Load documents from a text file
loader = TextLoader(file_path="harrypotter.txt", encoding = 'UTF-8')
docs = loader.load()
# Split documents into chunks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=250, chunk_overlap=24)
documents = text_splitter.split_documents(documents=docs)

とあるが 適切なチャンク範囲の設定はどのようにすれば良いのか?

これをGPTで調べてみた

適切な `chunk_size` と `chunk_overlap` の設定は、以下の要因によって決まります。

## 1. **チャンクサイズ (`chunk_size`) の決定**
– **短すぎると**:単語や文章が分断され、情報の流れが失われる。
– **長すぎると**:分割する意味が薄れ、メモリ消費が大きくなる。
– **一般的な目安**:
– **250~500文字**:短め(検索用、要約用)
– **500~1000文字**:バランス型(QAシステム、ベクトル検索)
– **1000~2000文字**:長め(LLMのコンテキスト処理)

例:
– 段落単位で検索するなら **500~1000文字**
– 文脈を広く持ちたいなら **1000~2000文字**

## 2. **チャンクの重複 (`chunk_overlap`) の決定**
`chunk_overlap` を設定することで、情報の途切れを防ぐことができます。適切な値は以下のように決めます。

– **目安**:
– `chunk_size` の **10~20%** くらいが一般的
– 例えば `chunk_size=500` なら `chunk_overlap=50~100`
– 重要な文脈を保持したいなら `chunk_overlap=20~30%`

### **例**
– `chunk_size=250`, `chunk_overlap=24` (10%程度) → 短めのコンテンツ
– `chunk_size=500`, `chunk_overlap=100` (20%程度) → 一般的な設定
– `chunk_size=1000`, `chunk_overlap=200` (20%程度) → 長めのコンテンツ

## 3. **チューニング方法**
適切な値を決めるには、以下の手順で調整すると良いです。

1. **テスト用の分割を試す**
“`python
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100)
chunks = text_splitter.split_documents(docs)
for i, chunk in enumerate(chunks[:5]):
print(f”Chunk {i+1}:\n{chunk}\n{‘=’*50}”)
“`
2. **実際の分割結果を確認**
– 文が不自然に切れていないか?
– 重要なキーワードが両方のチャンクに残っているか?
3. **調整する**
– 重要な部分が切れるなら `chunk_overlap` を増やす
– 無駄に長いなら `chunk_size` を小さくする

## 4. **応用**
### **改行や句読点で分割する**
より自然な分割をしたい場合、`separator` を設定できます。

“`python
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=500,
chunk_overlap=100,
separators=[“\n\n”, “\n”, “。”, “、”, ” “]
)
“`
– 段落 (`\n\n`)、改行 (`\n`)、句読点 (`。` や `、`) で優先的に分割
– なるべく意味のある単位でチャンクを作成可能

### **結論**
– 一般的には **`chunk_size=500`, `chunk_overlap=100` (20%)** くらいが良い
– **内容が切れやすいなら `chunk_overlap` を増やす**
– **より自然な分割には `separators` を活用する**
– **実際に試して調整するのが最も確実**

Broser-useで実行結果の保存

Broser-useで実行結果の保存

https://fx.minkabu.jp/indicators
へアクセスし、今日の経済指標カレンダーの日程を取得。結果をcalendar.txt へ保存
というプロンプトでは
画像ファイルができるだけで
テキストファイルは生成されない

Broser-use ファイル保存で検索

https://qiita.com/Syoitu/items/5aa84b5d8c6047c4d41b
によれば
カスタムアクションの登録とエージェントの並列化が必要

Browser Useでスクリーンショットを取得する
では
スクリーンショットを取得するカスタムアクションを登録
となっている

どうやらプロンプトではなく
カスタムアクションを作成する必要がある

これができるなら
チラシのxpathの取得で画像を取得するよりも
Broser-useでチラシ画像をクリックし
これをカスタムアクションでスクショ保存して
これをOCRした方が汎用性がありそう

ということでカスタムアクションについて調べる

カスタムアクションについては
AI Agent】browser-useを使って、自分のブラウザを操作させてみる


browser-useによるブラウザ操作自動化のサンプル集
を参考に進める

原油と金価格の取得

自国と各国の経済指標とかをまとめて可視化
為替れーと、原油とか金、ビットコインの推移を見れることが
できるものを作成する

GPTで調べると

以下の要件に基づいて、経済指標や各種市場データをまとめて可視化するツールを作成する方法を提案します。

### **プロジェクト概要**
#### **目的**
– 各国の経済指標や市場データをまとめて可視化。
– 為替レート、原油価格、金価格、ビットコイン価格の推移をリアルタイムで確認可能。

#### **必要な機能**
1. **データ取得**
– 経済指標(GDP、失業率、インフレ率など)
– 為替レート(主要通貨ペア: USD/JPY、EUR/USDなど)
– 原油価格(WTI、ブレント)
– 金価格(トロイオンス単位)
– 仮想通貨(ビットコイン、イーサリアムなど)

2. **データの可視化**
– 時系列グラフ(過去の推移)
– ダッシュボード形式でのリアルタイム表示

3. **通知機能(任意)**
– 為替レートや価格の変動が大きい場合にアラートを送信。

4. **多言語対応(日本語/英語)**

### **開発環境**
#### **プログラミング言語**
– Python(データ取得、可視化に適切)

#### **使用ライブラリ・API**
– **データ取得**
– 為替レート: [ExchangeRate-API](https://www.exchangerate-api.com/) or [Alpha Vantage](https://www.alphavantage.co/)
– 原油・金価格: [Yahoo Finance API](https://rapidapi.com/apidojo/api/yahoo-finance1/)
– 仮想通貨: [CoinGecko API](https://www.coingecko.com/) or [CoinMarketCap API](https://coinmarketcap.com/api/)
– 経済指標: [OECD API](https://data.oecd.org/) or [World Bank API](https://data.worldbank.org/)

– **データ可視化**
– `Plotly`(インタラクティブなグラフ)
– `Dash`(ダッシュボード作成)
– `matplotlib`(簡易な静的グラフ)

– **バックエンド**
– Flask または FastAPI(Webアプリケーションのベース)

– **フロントエンド**
– Dash(Pythonのみで作成可能)

#### **サーバー**
– ローカル開発: PCまたはRaspberry Pi(Pi 5が最適)
– デプロイ: AWS、GCP、Heroku、またはVPS

### **基本的な実装手順**

1. **データ取得モジュールの作成**
– 各APIからデータを取得するPythonモジュールを作成。
– 必要に応じて取得データをCSVまたはデータベース(SQLiteなど)に保存。

2. **データ処理**
– Pandasを使用してデータを加工(例: 日付フォーマットの統一、不要な列の削除)。
– 過去1年分などの期間を指定してデータをフィルタリング。

3. **可視化**
– Plotlyでインタラクティブなグラフを作成。
– 例: 為替レートの時系列推移を折れ線グラフで表示。

4. **ダッシュボードの作成**
– Dashを使い、リアルタイムにデータが更新されるダッシュボードを構築。
– 各市場データをカード形式やグラフで整理。

5. **通知機能(オプション)**
– 適当な閾値を設定し、変動が大きい場合にLINE Notifyやメールでアラート送信。

### **プロジェクトの初期設計例**

#### **ディレクトリ構造**
“`
economy_dashboard/
├── app.py # メインスクリプト
├── data_fetcher/
│ ├── forex.py # 為替データ取得
│ ├── commodities.py # 原油/金価格取得
│ ├── crypto.py # 仮想通貨データ取得
│ └── indicators.py # 経済指標取得
├── templates/ # DashやFlaskのHTMLテンプレート
├── static/ # CSS/JSファイル
└── requirements.txt # 必要ライブラリ
“`

#### **ダッシュボードイメージ**
– **ヘッダー**
– 今日の日付と最新の市場状況(例: USD/JPY、ビットコイン価格など)。
– **メインセクション**
– 為替レート推移グラフ
– 原油価格と金価格の時系列データ
– 仮想通貨の市場状況
– **サイドバー**
– 通知の設定や期間選択。

### **サンプルコード(Dashを使った可視化)**

```python
import dash
from dash import dcc, html
import pandas as pd
import plotly.graph_objects as go

# サンプルデータ
data = {
    "Date": pd.date_range(start="2024-01-01", periods=10, freq="D"),
    "USD_JPY": [130 + i for i in range(10)],
    "Bitcoin": [30000 + i * 500 for i in range(10)],
}
df = pd.DataFrame(data)

# Dashアプリ
app = dash.Dash(__name__)

app.layout = html.Div([
    html.H1("経済指標ダッシュボード"),
    dcc.Graph(
        id="forex_chart",
        figure={
            "data": [
                go.Scatter(x=df["Date"], y=df["USD_JPY"], mode="lines", name="USD/JPY"),
                go.Scatter(x=df["Date"], y=df["Bitcoin"], mode="lines", name="Bitcoin"),
            ],
            "layout": go.Layout(title="為替とビットコインの推移", xaxis_title="日付", yaxis_title="価格"),
        },
    ),
])

if __name__ == "__main__":
    app.run_server(debug=True)
```

### **今後の拡張案**
1. **AI活用**
– 市場予測モデルを構築し、将来のトレンドを予測。
2. **モバイル対応**
– スマホで見やすいUIを設計。
3. **ユーザー設定**
– 関心のある国や通貨ペアを選択可能に。

作成を進める中で質問や具体的な実装サポートが必要であれば、ぜひお知らせください!

となった

まずはWTIからやるので

commodities.py

を作成する

import requests
import datetime

def fetch_commodities_data(api_key, symbol, interval="1d", range="1mo"):
    """
    Fetch commodity prices such as crude oil (WTI/Brent) or gold.

    Parameters:
        api_key (str): API key for the Yahoo Finance or similar API.
        symbol (str): Symbol of the commodity (e.g., CL=F for WTI Crude Oil, GC=F for Gold).
        interval (str): Data interval (e.g., '1d', '1wk').
        range (str): Data range (e.g., '1mo', '3mo', '1y').

    Returns:
        dict: Parsed JSON response containing commodity price data.
    """
    base_url = "https://query1.finance.yahoo.com/v8/finance/chart/"
    url = f"{base_url}{symbol}"

    params = {
        "region": "US",
        "lang": "en",
        "interval": interval,
        "range": range,
    }

    headers = {
        "x-api-key": api_key
    }

    try:
        response = requests.get(url, headers=headers, params=params)
        response.raise_for_status()
        data = response.json()
        return data

    except requests.exceptions.RequestException as e:
        print(f"Error fetching commodity data: {e}")
        return None

# Example usage
if __name__ == "__main__":
    API_KEY = "your_api_key_here"  # Replace with your actual API key
    symbol_wti = "CL=F"  # WTI Crude Oil
    symbol_gold = "GC=F"  # Gold

    # Fetch WTI data
    wti_data = fetch_commodities_data(API_KEY, symbol_wti)
    if wti_data:
        print("WTI Data:", wti_data)

    # Fetch Gold data
    gold_data = fetch_commodities_data(API_KEY, symbol_gold)
    if gold_data:
        print("Gold Data:", gold_data)

というコードが提示された

しかし確かAPIキーなしでも動作する

yfinance API を使って株のデータを取得する

も参考にする

Python で過去の株価データを CSVデータで取得する
でもキーは不要で動く

Pythonでリアルタイムな株価を取得する方法
でも同じ

[解説]Pythonを用いた株価・経済データの取得方法をまとめてみた

でもキーは不要

ということで
原油/金価格取得のため yfinance を使い python で取得したい
というように変更

import yfinance as yf

def fetch_commodities_data(symbol, start_date, end_date):
    """
    Fetch commodity prices such as crude oil (WTI/Brent) or gold using yfinance.

    Parameters:
        symbol (str): Symbol of the commodity (e.g., 'CL=F' for WTI Crude Oil, 'GC=F' for Gold).
        start_date (str): Start date for historical data in 'YYYY-MM-DD' format.
        end_date (str): End date for historical data in 'YYYY-MM-DD' format.

    Returns:
        DataFrame: Pandas DataFrame containing the historical price data.
    """
    try:
        data = yf.download(symbol, start=start_date, end=end_date)
        return data
    except Exception as e:
        print(f"Error fetching commodity data: {e}")
        return None

# Example usage
if __name__ == "__main__":
    symbol_wti = "CL=F"  # WTI Crude Oil
    symbol_gold = "GC=F"  # Gold

    # Define the date range
    start_date = "2023-01-01"
    end_date = "2023-12-31"

    # Fetch WTI data
    wti_data = fetch_commodities_data(symbol_wti, start_date, end_date)
    if wti_data is not None:
        print("WTI Data:")
        print(wti_data)

    # Fetch Gold data
    gold_data = fetch_commodities_data(symbol_gold, start_date, end_date)
    if gold_data is not None:
        print("Gold Data:")
        print(gold_data)

となって実行すると

[*********************100%***********************]  1 of 1 completed
WTI Data:
Price           Close       High        Low       Open  Volume
Ticker           CL=F       CL=F       CL=F       CL=F    CL=F
Date                                                          
2023-01-03  76.930000  81.500000  76.599998  80.570000  338520
2023-01-04  72.839996  77.419998  72.730003  77.250000  352434
2023-01-05  73.669998  74.919998  72.459999  73.250000  300731
2023-01-06  73.769997  75.470001  73.239998  73.970001  258128
2023-01-09  74.629997  76.739998  73.470001  73.470001  329290
...               ...        ...        ...        ...     ...
2023-12-22  73.559998  74.980003  73.389999  73.910004  222600
2023-12-26  75.570000  76.180000  73.129997  73.559998  208715
2023-12-27  74.110001  75.660004  73.769997  75.320000  253323
2023-12-28  71.769997  74.400002  71.720001  73.800003  262748
2023-12-29  71.650002  72.620003  71.250000  71.989998  214486

[250 rows x 5 columns]
[*********************100%***********************]  1 of 1 completed
Gold Data:
Price             Close         High          Low         Open Volume
Ticker             GC=F         GC=F         GC=F         GC=F   GC=F
Date                                                                 
2023-01-03  1839.699951  1839.699951  1836.199951  1836.199951     29
2023-01-04  1852.800049  1859.099976  1845.599976  1845.599976     25
2023-01-05  1834.800049  1855.199951  1834.800049  1855.199951     24
2023-01-06  1864.199951  1868.199951  1835.300049  1838.400024     26
2023-01-09  1872.699951  1880.000000  1867.000000  1867.000000     62
...                 ...          ...          ...          ...    ...
2023-12-22  2057.100098  2068.699951  2052.199951  2055.699951    202
2023-12-26  2058.199951  2060.800049  2054.199951  2060.000000     64
2023-12-27  2081.899902  2081.899902  2064.800049  2067.300049    586
2023-12-28  2073.899902  2087.300049  2066.500000  2081.600098    338
2023-12-29  2062.399902  2068.899902  2062.100098  2068.000000     47

[250 rows x 5 columns]

となる

さらにデータをCSVに保存するので

import yfinance as yf

def fetch_commodities_data(symbol, start_date, end_date):
    """
    Fetch commodity prices such as crude oil (WTI/Brent) or gold using yfinance.

    Parameters:
        symbol (str): Symbol of the commodity (e.g., 'CL=F' for WTI Crude Oil, 'GC=F' for Gold).
        start_date (str): Start date for historical data in 'YYYY-MM-DD' format.
        end_date (str): End date for historical data in 'YYYY-MM-DD' format.

    Returns:
        DataFrame: Pandas DataFrame containing the historical price data.
    """
    try:
        data = yf.download(symbol, start=start_date, end=end_date)
        return data
    except Exception as e:
        print(f"Error fetching commodity data: {e}")
        return None

# Example usage
if __name__ == "__main__":
    symbol_wti = "CL=F"  # WTI Crude Oil
    symbol_gold = "GC=F"  # Gold

    # Define the date range
    start_date = "2023-01-01"
    end_date = "2023-12-31"

    # Fetch WTI data
    wti_data = fetch_commodities_data(symbol_wti, start_date, end_date)
    if wti_data is not None:
        print("WTI Data:")
        print(wti_data)
        wti_data.to_csv("wti_data.csv")

    # Fetch Gold data
    gold_data = fetch_commodities_data(symbol_gold, start_date, end_date)
    if gold_data is not None:
        print("Gold Data:")
        print(gold_data)
        gold_data.to_csv("gold_data.csv")

として実行

とりあえず問題なし

次は経済指標だが
カレンダーは
メルマガから取得するより
Browser use で経済指標カレンダーを取得した方が早いかもしれない

https://fx.minkabu.jp/indicators
へアクセスし、今日の経済指標カレンダーの日程を取得

これで一応は取得できてるみたい

結果を保存したいので
https://fx.minkabu.jp/indicators
へアクセスし、今日の経済指標カレンダーの日程を取得。結果をcalendar.txt へ保存
としたけどできなかった

@sから今週のイベントを抽出したいのでプロンプトを作成する

@sから今週のイベントを抽出したいのでプロンプトを作成する

参考として
Udemy のプロンプトを見る

なおプロンプトは

task = """
https://kabutan.jp/warning/?mode=3_3&market=3からクローズ市場の本日、年初来高値を更新した銘柄のうち、株価が1000円以下のものをピックアップしてください。
その後、https://plsk.net/へアクセスし、フォームに"kabutest4"と入力し、移動をクリックした後、https://plsk.net/kabutest4へアクセスし、
先頭に「今日の口出」を入力した後、取得したすべての銘柄の「銘柄コード、銘柄名、株価」を転記してください。
最後に「編集する」ボタンをクリックし終了します。
"""

というように
マルチライン文字列を使用する

https://kabutan.jp/warning/?mode=3_3&market=3からクローズ市場の本日、年初来高値を更新した銘柄のうち、株価が1000円以下のものをピックアップしてください。
その後、https://plsk.net/へアクセスし、フォームに"kabutest4"と入力し、移動をクリックした後、https://plsk.net/kabutest4へアクセスし、先頭に「今日の口出」を入力した後、取得したすべての銘柄の「銘柄コード、銘柄名、株価」を転記してください。最後に「編集する」ボタンをクリックし終了します。


https://kakaku.com/ へアクセスし、「青森産 王林りんご10キロ」の最安値を検索してください。
次に、https://www.amazon.co.jp/ へアクセスし「青森産 王林りんご10キロ」の最安値を検索してください。
kakaku.comの最安値と同じかそれよりも+500円までであればアマゾンで買っていいよ、というアドバイスと、価格を教えて下さい。


aigym.jpというサイトにアクセスし、ブログメニューをクリックします。そして、ブログ一覧から、タイトルに"OpenAI"というキーワードが含まれる記事のみへのリンク一覧を取得します。OpenAIキーワードを含むリンク一覧のサイトへ順にアクセスし、時系列順(ブログ更新日時順)に、ブログの概要をまとめてください。

これらを参考にプロンプトを作成する

https://www.at-s.com/event/
が@sのイベントのページ

今日から一週間以内に開催されるイベント情報
からイベント情報を取得したい

これをもっと具体的なものにする

https://www.at-s.com/event/search/
でイベントの検索ができる

イベント開催日カレンダー
で今日の日付をクリックし
検索をクリック

ここまでをプロンプトにする

https://www.at-s.com/event/search/
へアクセスし、
イベント開催日カレンダー
の今日の日付をクリックし
検索をクリックします。
日付検索結果から10件のイベントを取得してください

これで実行すると

{'text': 'Extracted 10 events from the page:\n\n1. 第10回オクシズ森林の市\n2. 清水みなとと海洋ミュージアム2025\n3. 三明寺 節分祭\n4. みんなで冬の遊びを楽しもう事前申込\n5. アベオクマルシェ\n6. 親子でアルティメット体験 1月26日事前申込\n7. 週末ボタニカル SBSマイホームセンター静岡展示場\n8. ハチャメチャワクワクランド SBSマイホームセンター掛川展示場\n9. ハチャメチャワクワクランド SBSマイホームセンター藤枝展示場\n10. ハチャメチャワクワクランド SBSマイホームセンター富士展示場'}}])

とりあえず取得に関してはOK

次はtwitter の検索を試す

https://x.com/

検索が
https://x.com/explore

高速の事故情報を知りたいので
https://x.com/c_nexco_tokyo
へアクセスし
最新10件のポストを取得してください
これだと画像とかのパスまで取得するので

https://x.com/c_nexco_tokyo
へアクセスし
最新10件のポストからテキスト情報のみ取得してください
とした

しかし

{'text': 'Here are the latest 10 posts from the specified X account:\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2023年6月14日高速道路上の工事規制箇所へ衝突する事故が多発しています!\n運転支援機能を過信し、前方を見ていないと思われる事故や、スマートフォン見ながらの「ながら運転」による事故の多発と考えられます。走行中は前を見て運転してください。\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年12月20日【#東名#リニューアル工事工事終了のお知らせ】\n本日12/20(金)11時53分をもちまして、E1東名 大井松田IC~清水JCT間のリニューアル工事はすべて終了しました。\nお客さまにはご迷惑をおかけしました。ご協力ありがとうございました.\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年3月1日【事故多発区間\u3000走行上のご注意】\n高速道路では、渋滞末尾の追突事故が多発しています。\n渋滞が多発する区間の手前では、標識や情報板などで注意喚起を行っていますので、車間距離を十分にとって、安全なご走行をお願いいたします.\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年2月5日【除雪情報】18時40分現在\nE1 東名高速道路 横浜青葉IC付近の除雪状況です.\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年11月6日【お知らせ】\n障害物等の落下地点の数キロ手前から、状況によりパトロールカーが低速走行し、交通流の抑制を行いながら調査をする場合があります。その際、後続のお客さまはパトロールカーを抜かさずにハザードランプを点灯し、低速での走行をお願いいたします.\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年7月26日【緊急走行中の#ヒヤリハット】\n追越車線を緊急走行中、第1走行車線を進行中の普通乗用車が後方安全不確認のまま第2走行車線さらには追越車線に進路変更してきたため、衝突回避したものです。\n速度超過に注意するとともに安全な車間距離を保ち、心にも余裕をもって安全運転をお願いします。\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年10月12日【E1#東名#事故#ランプ閉鎖】\n6時35分現在\n下り線(名古屋方面)\n開始時間:6時00分\n場所:横浜町田IC 出口 \n(本線から料金所に向かう出口ランプ)\n概要:貨物単独 / 人身事故\n状況:負傷者救助中\n現場付近を先頭に渋滞長 10㎞\n※下り線さらに表示引用\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年10月12日【E1#東名#事故#渋滞情報】\n5時20分現在\n下り線(名古屋方面)\n区間:横浜青葉IC~横浜町田IC\n場所:横浜町田IC 出口分岐\n概要:貨物単独 / 人身事故\n状況:負傷者救助中 / 本線左側車線規制 / \n出口ランプ右側規制\n現場を先頭に渋滞 1㎞\n規制情報\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年2月5日【除雪情報】22時00分現在\nE1#東名高速道路横浜町田IC付近の状況です。#通行止#大雪#高速道路\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年2月5日【お知らせ】20時20分現在\nE1#東名高速道路東京料金所付近の状況です.\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年12月28日【お知らせ】\n全車線に渡る短時間の作業、本線を横断する作業を安全に行うため複数台の管理車両(黄パト)が横一列に並ぶことがあります.\n\nNEXCO中日本 東京支社@c_nexco_tokyo·2024年10月25日'}}])

となって過去の記事を取得している

とりあえずtwitterでも取得はできそう