SONUB ホーム JA English 한국어 日本語 中文 हिन्दी বাংলা اردو Español Português Français Deutsch Русский العربية Bahasa Indonesia Tiếng Việt ไทย Türkçe

通知を有効にする方法

このブラウザーまたはアドレスでは通知を利用できません。対応ブラウザーで安全な接続のSONUBサイトを開いてください。

通知がブロックされている場合は、ブラウザーの設定で許可してください。

  1. アドレスバー横のサイト設定、またはブラウザーのサイト設定を開き、このサイトの通知を許可に変更してください。
  2. 端末の設定でブラウザーの通知を許可し、おやすみモードや集中モードを確認してください。
  3. SONUBに戻ってページを再読み込みし、ベルから通知を有効にしてください。

iPhoneやiPadではSONUBをホーム画面に追加し、そこから開いて通知を許可してください。

XSML · 最初のコードから会話まで

さあ、あなただけの人工知能を作ってみましょう。

このブラウザーで言語モデルを手入力します。データ、小さなGPTの学習、Runner、XChatまで完成させます。学習済みの重みや外部AI APIは使いません。

9

XChat

自分の会話クライアントを完成させます。

XChatは入力画面、Runnerは実行サービス、XSMLはです。は質問を整形しで送ります。

最初の版は端末内で動き、会話履歴は送りません。次の実験として小さな文脈に合う履歴を追加できます。

入力して実験

Runnerを動かしたままxchat.pyを書き実行。You>でhi、/exitで終了してからkillします。

cd ~/xsml
nano xchat.py
python3 xchat.py
hi
/exit
kill "$(cat runner.pid)"
xchat.py — 手入力する完全なソース

inputで読んでHTTP POSTを送り、実際の回答や接続エラーを表示します。

import json
from pathlib import Path
from urllib.request import Request, urlopen
from urllib.error import URLError


def ask(question):
    cfg = json.loads(Path('settings.json').read_text())
    body = {'prompt': 'Q: ' + question + '\nA:', 'tokens': cfg['tokens']}
    request = Request('http://127.0.0.1:' + str(cfg['port']) + '/generate',
                      data=json.dumps(body).encode(),
                      headers={'Content-Type': 'application/json'})
    with urlopen(request, timeout=120) as response:
        return json.load(response)['text']


if __name__ == '__main__':
    print('XChat -> Runner -> XSML | /exit')
    while True:
        try:
            question = input('You> ').strip()
            if question == '/exit':
                break
            if question:
                print('XSML>', ask(question))
        except (EOFError, KeyboardInterrupt):
            break
        except (URLError, TimeoutError) as error:
            print('Runner:', error)

理解を確認

XChat→Runner→重み→文章を説明。Runner停止時は接続エラーになり、再起動で戻るか確認します。

困ったとき

killをXChat内に入力しないでください。/exitで戻り、最後にプロジェクトを書き出します。