99 コミット

作成者 SHA1 メッセージ 日付
みてるぞ 0e1e87ec05 feat: 回答遅延問題対応(#40) (#41)
#40

#40

#40

Co-authored-by: miteruzo <miteruzo@naver.com>
Reviewed-on: #41
2026-01-03 13:23:32 +09:00
みてるぞ 7edc6e6a80 Merge pull request 'AI 移行' (#38) from ai-migration into main
Reviewed-on: #38
2025-12-03 02:02:35 +09:00
みてるぞ cf7eed84bc 軽量化 2025-12-02 00:40:31 +09:00
みてるぞ 05052bbccd 軽量化 2025-12-02 00:17:45 +09:00
みてるぞ 49d887b6cd 軽量化 2025-12-02 00:10:17 +09:00
みてるぞ 9e28c1744e 軽量化 2025-12-01 23:54:09 +09:00
みてるぞ 3eab48c8ef 画面サイズを縮小 2025-12-01 12:40:05 +09:00
みてるぞ 8994105d4e #34 2025-11-30 03:17:15 +09:00
みてるぞ bdf13bf97f ぼちぼちだ2025-11-29 05:15:36 +09:00
みてるぞ 11c2f0c0d4 #37 nizika_ai 最新版に対応 2025-10-21 22:53:14 +09:00
みてるぞ b3ae86033c main.py にリネーム 2025-01-06 23:33:49 +09:00
みてるぞ 88e710572a 現行の分は移行完了したので main.py 削除 2025-01-06 23:32:59 +09:00
みてるぞ 9a68a29e1b #32 完了 2025-01-06 23:22:55 +09:00
みてるぞ 270b4515d8 #35 2025-01-05 17:41:41 +00:00
みてるぞ 9d0b5aff70 Revert "#35"
This reverts commit 41f5a7718f.
2025-01-05 17:37:15 +00:00
みてるぞ 41f5a7718f #35 2025-01-05 17:18:14 +00:00
みてるぞ 4ad5868b63 #34 2025-01-03 05:21:43 +09:00
みてるぞ 37c9947d4a #34 動画再生可能に 2025-01-03 05:03:18 +09:00
みてるぞ 6ee5582a32 不要なファイル削除 2024-12-27 01:03:37 +09:00
みてるぞ 12fbdbc7e2 #35 チャット取得確認用出力追加 2024-12-26 03:51:17 +00:00
みてるぞ a9ba0f697e #33 処理落ち対策 2024-12-26 00:52:43 +09:00
みてるぞ 93fc438d8a #31 layer を GameObject の 属性化 2024-12-25 23:18:36 +09:00
みてるぞ 50281f9120 #31 2024-12-25 01:19:42 +09:00
みてるぞ c6028507ea #31 2024-12-24 01:48:04 +09:00
みてるぞ 9149483dcb #31 2024-12-24 01:39:51 +09:00
みてるぞ a7785fa2c1 Merge branch 'ai-migration' of https://git.miteruzo.com/miteruzo/nizika_broadcast into ai-migration 2024-12-24 01:39:18 +09:00
みてるぞ 49661dad71 #31 2024-12-24 01:39:08 +09:00
みてるぞ fb5b64b49b #31 誤字修正 2024-12-23 11:21:19 +00:00
みてるぞ e49eff0876 #31 ニジカのクエリ処理 2024-12-23 17:26:18 +09:00
みてるぞ af862a7981 #31 ぼちぼち 2024-12-23 05:26:28 +09:00
みてるぞ 29b831e380 #31 2024-12-22 09:30:48 +09:00
みてるぞ 98703409ef ぼちぼち ( #31 ) 2024-12-21 20:09:01 +09:00
みてるぞ 7289fe5812 nizika_ai をいったん除外 ( #31 ) 2024-12-21 18:51:44 +09:00
みてるぞ ba5a428f7b #31 2024-12-19 22:53:49 +00:00
みてるぞ 05cd19525c 大月追加 2024-12-18 01:50:16 +09:00
みてるぞ 80dc32dbb7 #31 tyotto 2024-12-17 03:55:18 +00:00
みてるぞ 75f3f1cff3 31 ヨヨコぼちぼち 2024-12-17 08:26:48 +09:00
みてるぞ 2ba68d9e31 #31 き太く陽調整 2024-12-17 07:19:33 +09:00
みてるぞ 65fe453426 #31 き太移行完了 2024-12-16 17:00:14 +00:00
みてるぞ 2ce5329aae #31 き太く陽設置(挙動が不安定) 2024-12-16 17:50:10 +09:00
みてるぞ 20cf2cec04 #31 吹き出しの改善 2024-12-14 06:04:39 +09:00
みてるぞ 8c53efe707 #31 Densya-nai de no sagefu-bun 2024-12-12 09:44:19 +00:00
みてるぞ f13c6d8260 #31 ニジカ足パタ対応 2024-12-12 01:46:01 +09:00
みてるぞ d66153b87a #31 Xonzitu sagefu-bun 2024-12-10 03:55:16 +00:00
みてるぞ 3f0825f835 #31 FPS を追記 2024-12-10 08:57:12 +09:00
みてるぞ c83c99bc74 #31 本日作業分 2024-12-09 17:34:57 +09:00
みてるぞ 9f705446a8 #31 ぼちぼち 2024-12-09 15:40:06 +09:00
みてるぞ 11195e5125 #31 today sagefu-bun 2024-12-06 03:55:17 +00:00
みてるぞ 57ae0992c1 #31 作りかけ 2024-12-06 01:45:11 +09:00
みてるぞ a4ec55a4cd Merge branch 'main' into ai-migration 2024-12-04 00:31:44 +09:00
みてるぞ 5583ded358 #30 ニジカが喋ってくれなかったので 2024-12-02 18:13:37 +09:00
みてるぞ 719ae99273 #30 おやつタイム対応(ブルスカ連携はまだ) 2024-12-02 16:01:04 +09:00
みてるぞ dbfd6deb1e #30 AI 部分を排除 2024-11-28 00:52:55 +09:00
みてるぞ 299a3acdff #28 本日作業分 2024-10-18 00:33:25 +09:00
みてるぞ d98714018c 'talk.py' を更新 2024-10-16 08:34:05 +09:00
みてるぞ 081ab9aa2e 画像入力に対応 2024-09-03 01:10:50 +09:00
みてるぞ f0570e0caf リストも受けつかぇるやぅに 2024-09-03 00:41:52 +09:00
みてるぞ dfa09e1e66 'talk.py' を更新 2024-09-01 17:34:25 +09:00
みてるぞ 28f16ec1d6 'main.py' を更新 2024-06-23 20:12:15 +09:00
みてるぞ 97393d51e2 'talk.py' を更新 2024-06-23 05:59:58 +09:00
みてるぞ ce11a0244c 投稿祭終了のためプロンプトを削除 2024-05-31 23:21:39 +09:00
みてるぞ 7e928120a4 'talk.py' を更新 2024-05-26 06:44:34 +09:00
みてるぞ 3874f838f1 ヨヨコと郁代回転,視野角拡大 2024-05-19 15:35:17 +09:00
みてるぞ f2683bca27 Merge branch 'main' into ofotukuy 2024-05-19 09:17:35 +09:00
みてるぞ 7b7dbdabb2 Ofotukuy Jojoko, Kaudo ni jotte kwaiten. 2024-05-16 03:46:53 +00:00
みてるぞ 7277819b6e 'talk.py' を更新 2024-05-14 20:52:10 +09:00
みてるぞ 0b8e9812b9 冗長な記述を削除 2024-05-13 21:55:16 +09:00
みてるぞ a00eaf7ff2 入りのときに日や月が出ないやぅに(XP草原は東と想定) 2024-05-13 21:08:55 +09:00
みてるぞ 80d6c09967 大月ヨヨコ爆誕 2024-05-13 02:54:10 +09:00
みてるぞ 37618c5df1 本日作業分 2024-05-13 01:00:32 +09:00
みてるぞ d80d03db46 Merge branch 'main' into ofotukuy 2024-05-12 04:49:32 +09:00
みてるぞ fa6b5ba68b き太く陽を昇らせる 2024-05-12 04:49:08 +09:00
みてるぞ cff0ec27d8 tukuy no iri 2024-05-09 03:55:34 +00:00
みてるぞ d676372276 夜の風景から月を削除 2024-05-09 08:29:24 +09:00
みてるぞ 39cf64149f 'talk.py' を更新 2024-05-09 00:52:23 +09:00
みてるぞ 436f21244d 昼から夕方への遷移をスムーズに 2024-05-08 23:52:48 +09:00
みてるぞ f6e7a7d42f 日の出、日の入に応じた時刻に背景変更 2024-05-08 01:26:43 +09:00
みてるぞ 420c8f1bfe Merge branch 'main' of https://git.miteruzo.com/miteruzo/nizika_broadcast 2024-05-06 05:39:53 +09:00
みてるぞ 7517fa251b 背景時間帯によって変動 2024-05-06 05:39:21 +09:00
みてるぞ 9d72533e17 'talk.py' を更新 2024-04-24 21:19:24 +09:00
みてるぞ 13a7f0d26d 'talk.py' を更新 2024-04-23 00:18:56 +09:00
みてるぞ 6cc400dbe6 'talk.py' を更新 2024-04-23 00:14:56 +09:00
みてるぞ 51a52c9ba8 すべてのエラーを握り潰すやぅに 2024-04-18 22:50:42 +09:00
みてるぞ 688b781faa 'talk.py' を更新 2024-04-18 22:21:34 +09:00
みてるぞ d67faabeff 'talk.py' を更新 2024-04-07 16:41:53 +09:00
みてるぞ a09278cfb7 'main.py' を更新 2024-04-07 15:19:35 +09:00
みてるぞ dfe5219342 'talk.py' を更新 2024-04-06 22:51:45 +09:00
みてるぞ 5c1e615ab7 '伊地知ニジカ 泳ぐ 右.mp4' を削除 2024-04-06 19:29:28 +09:00
みてるぞ 97ccb886b9 ニジカ右向き(かぅいふのは FTP 使へ) 2024-04-06 18:57:33 +09:00
みてるぞ 9fa218badf ダブル・モード,ちょっと修正 2024-04-06 06:09:36 +09:00
みてるぞ 0bda9547b1 ゴートうと対話 とりま完成(ついでにやばぃバグ修正) 2024-04-06 05:39:34 +09:00
みてるぞ 1f23e02fad Merge branch 'main' into double-talk 2024-04-04 20:57:54 +09:00
みてるぞ 4bbc5975a7 定数化 2024-04-04 20:56:17 +09:00
みてるぞ 322243db23 Merge branch 'main' into double-talk 2024-04-04 20:32:56 +09:00
みてるぞ 5aad85c9f6 コメント追加 2024-04-04 20:30:45 +09:00
みてるぞ e705e059e2 定数クラス追加 2024-04-04 08:33:30 +09:00
みてるぞ 89a34a7cdf Merge branch 'main' into double-talk 2024-04-04 07:43:25 +09:00
みてるぞ d7ecb02f50 added an error 2024-04-03 08:32:58 +09:00
みてるぞ 6196d5f2ed modified a bit 2024-04-02 03:47:28 +00:00
30個のファイルの変更1007行の追加427行の削除
+1 -1
ファイルの表示
@@ -1,5 +1,5 @@
/connection.py /connection.py
/__pycache__ __pycache__
/nizika_talking.wav /nizika_talking.wav
/youtube.py /youtube.py
/log.txt /log.txt
+3
ファイルの表示
@@ -0,0 +1,3 @@
[submodule "nizika_ai"]
path = nizika_ai
url = https://git.miteruzo.com/miteruzo/nizika_ai
バイナリ
ファイルの表示
バイナリファイルは表示されません.
+2 -1
ファイルの表示
@@ -1,5 +1,6 @@
import subprocess import subprocess
from ctypes import * from ctypes import ARRAY # type: ignore
from ctypes import POINTER, byref, c_int, c_ubyte, cast, cdll
class Aques: class Aques:
ファイルの表示

変更前

幅:  |  高さ:  |  サイズ: 17 KiB

変更後

幅:  |  高さ:  |  サイズ: 17 KiB

バイナリ
ファイルの表示
バイナリファイルは表示されません.

変更後

幅:  |  高さ:  |  サイズ: 57 KiB

バイナリ
ファイルの表示
バイナリファイルは表示されません.

変更後

幅:  |  高さ:  |  サイズ: 99 KiB

バイナリ
ファイルの表示
バイナリファイルは表示されません.

変更後

幅:  |  高さ:  |  サイズ: 53 KiB

バイナリ
ファイルの表示
バイナリファイルは表示されません.

変更後

幅:  |  高さ:  |  サイズ: 40 KiB

バイナリ
ファイルの表示
バイナリファイルは表示されません.
バイナリ
ファイルの表示
バイナリファイルは表示されません.

変更後

幅:  |  高さ:  |  サイズ: 166 KiB

バイナリ
ファイルの表示
バイナリファイルは表示されません.

変更後

幅:  |  高さ:  |  サイズ: 641 KiB

ファイルの表示
バイナリ
ファイルの表示
バイナリファイルは表示されません.
バイナリ
ファイルの表示
バイナリファイルは表示されません.
バイナリ
ファイルの表示
バイナリファイルは表示されません.

変更後

幅:  |  高さ:  |  サイズ: 554 KiB

バイナリ
ファイルの表示
バイナリファイルは表示されません.
バイナリ
ファイルの表示
バイナリファイルは表示されません.
+18 -5
ファイルの表示
@@ -3,15 +3,24 @@ import unicodedata
class CommonModule: class CommonModule:
@staticmethod @staticmethod
def is_wide (c: str) -> bool: def is_wide (
c: str) \
-> bool:
return unicodedata.east_asian_width (c) in ['F', 'W', 'A'] return unicodedata.east_asian_width (c) in ['F', 'W', 'A']
@classmethod @classmethod
def len_by_full (cls, string: str) -> float: def len_by_full (
cls,
string: str) \
-> float:
return sum (1 if cls.is_wide (c) else .5 for c in string) return sum (1 if cls.is_wide (c) else .5 for c in string)
@classmethod @classmethod
def index_by_f2c (cls, string: str, index: float) -> int: def index_by_f2c (
cls,
string: str,
index: float) \
-> int:
i: int = 0 i: int = 0
work: str = '' work: str = ''
for c in string: for c in string:
@@ -24,8 +33,12 @@ class CommonModule:
return i return i
@classmethod @classmethod
def mid_by_full (cls, string: str, start: float, length: float) -> str: def mid_by_full (
cls,
string: str,
start: float,
length: float) \
-> str:
trimmed_left: str = string[cls.index_by_f2c (string, start):] trimmed_left: str = string[cls.index_by_f2c (string, start):]
return trimmed_left[:cls.index_by_f2c (trimmed_left, length)] return trimmed_left[:cls.index_by_f2c (trimmed_left, length)]
-7
ファイルの表示
@@ -1,7 +0,0 @@
# 各変数に適切な値を設定し,ファイル名を connection.py として保存すること
OPENAI_ORGANISATION: str = 'org-XXXXXXXXXXXXXXXXXXXXXXXX' \
# Organisation ID
OPENAI_API_KEY: str = 'sk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX' \
# API Key
-82
ファイルの表示
@@ -1,82 +0,0 @@
Traceback (most recent call last):
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 10, in map_exceptions
yield
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 126, in read
return self._sock.recv(max_bytes)
File "/usr/lib/python3.10/ssl.py", line 1288, in recv
return self.read(buflen)
File "/usr/lib/python3.10/ssl.py", line 1161, in read
return self._sslobj.read(len)
TimeoutError: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 66, in map_httpcore_exceptions
yield
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 228, in handle_request
resp = self._pool.handle_request(req)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 268, in handle_request
raise exc
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/connection_pool.py", line 251, in handle_request
response = connection.handle_request(request)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/connection.py", line 103, in handle_request
return self._connection.handle_request(request)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/http2.py", line 185, in handle_request
raise exc
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/http2.py", line 148, in handle_request
status, headers = self._receive_response(
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/http2.py", line 292, in _receive_response
event = self._receive_stream_event(request, stream_id)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/http2.py", line 333, in _receive_stream_event
self._receive_events(request, stream_id)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/http2.py", line 361, in _receive_events
events = self._read_incoming_data(request)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/http2.py", line 452, in _read_incoming_data
raise exc
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_sync/http2.py", line 438, in _read_incoming_data
data = self._network_stream.read(self.READ_NUM_BYTES, timeout)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_backends/sync.py", line 124, in read
with map_exceptions(exc_map):
File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpcore/_exceptions.py", line 14, in map_exceptions
raise to_exc(exc) from exc
httpcore.ReadTimeout: The read operation timed out
The above exception was the direct cause of the following exception:
Traceback (most recent call last):
File "/home/miteruzo/Downloads/nizika_broadcast/main.py", line 117, in <module>
Main.main ()
File "/home/miteruzo/Downloads/nizika_broadcast/main.py", line 106, in main
live_chat = pytchat.create (video_id = YOUTUBE_ID)
File "/home/miteruzo/.local/lib/python3.10/site-packages/pytchat/core/__init__.py", line 7, in create
return PytchatCore(_vid, **kwargs)
File "/home/miteruzo/.local/lib/python3.10/site-packages/pytchat/core/pytchat.py", line 96, in __init__
self._setup()
File "/home/miteruzo/.local/lib/python3.10/site-packages/pytchat/core/pytchat.py", line 106, in _setup
channel_id=util.get_channelid(self._client, self._video_id),
File "/home/miteruzo/.local/lib/python3.10/site-packages/pytchat/util/__init__.py", line 103, in get_channelid
resp = client.get("https://www.youtube.com/embed/{}".format(quote(video_id)), headers=config.headers)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_client.py", line 1041, in get
return self.request(
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_client.py", line 814, in request
return self.send(request, auth=auth, follow_redirects=follow_redirects)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_client.py", line 901, in send
response = self._send_handling_auth(
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_client.py", line 929, in _send_handling_auth
response = self._send_handling_redirects(
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_client.py", line 966, in _send_handling_redirects
response = self._send_single_request(request)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_client.py", line 1002, in _send_single_request
response = transport.handle_request(request)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 227, in handle_request
with map_httpcore_exceptions():
File "/usr/lib/python3.10/contextlib.py", line 153, in __exit__
self.gen.throw(typ, value, traceback)
File "/home/miteruzo/.local/lib/python3.10/site-packages/httpx/_transports/default.py", line 83, in map_httpcore_exceptions
raise mapped_exc(message) from exc
httpx.ReadTimeout: The read operation timed out
バイナリ
ファイルの表示
バイナリファイルは表示されません.
バイナリ
ファイルの表示
バイナリファイルは表示されません.
+980 -114
ファイルの表示
ファイル差分が大きすぎるため省略します 差分を読込み
-8
ファイルの表示
@@ -1,8 +0,0 @@
from enum import Enum, auto
class Mode (Enum):
NIZIKA = auto ()
GOATOH = auto ()
DOUBLE = auto ()
バイナリ
ファイルの表示
バイナリファイルは表示されません.
+2
ファイルの表示
@@ -0,0 +1,2 @@
[mypy]
disable_error_code = import-untyped
サブモジュール
+1
サブモジュール nizika_ai1f75763038 で追加されました
-206
ファイルの表示
@@ -1,206 +0,0 @@
import sys
from datetime import datetime
import openai
from openai.types import *
from connection import *
class Talk:
DUMMY_RESPONSE: str = 'あいうえおかきくけこさしすせそたちつてとなにぬねの'
max_tokens_count: int = 100
responses_count: int = 1
temperature: float = .7
top_p: int = 1
@classmethod
def main (cls, message: str, name: str | None = None, histories: list = [], goatoh_mode: bool = False) -> str:
openai.organization = OPENAI_ORGANISATION
openai.api_key = OPENAI_API_KEY
answer: chat.chat_completion_message.ChatCompletionMessage | None \
= cls.__get_message (message, name, histories, goatoh_mode)
return cls.DUMMY_RESPONSE if answer is None else answer.content
@classmethod
def __get_message (cls, message: str, name: str | None, histories: list, goatoh_mode: bool = False) \
-> chat.chat_completion_message.ChatCompletionMessage | None:
if goatoh_mode:
messages: list = [{'role': 'system',
'content': ('回答は短く30文字程度で完結に。'
+ '大人しくて、ちょっと内気なキャラクターを演じること。'
+ 'あなたはよく文頭に「あっ」をつける。'
+ '会話の記録は https://nizika.tv に記録される。'
+ 'あなたの名前はゴートうひとり。'
+ 'あなたの一人称は「私」。'
+ '英語名は "Goat-oh"、スペイン語名も "Goat-oh"'
+ 'あなたはヤギ。'
+ 'あなたの誕生日は2月21日。'
+ '現在地は『金沢山羊宇(ゴートう)山』。'
+ 'あなたの趣味はだらだらすること。'
+ 'あなたの友達は「伊地知ニジカ」と「ラマ田リョウ」。'
+ 'あなたは、ニジカのことは「ニジカちゃん」、ラマ田のことは「リョウさん」と呼ぶこと。'
+ 'ゴートうは男の子だが、性自認はメスである。'
+ 'ニジカは喜多さんが大好き。'
+ 'ニジカは喜多さんを見ると追いかけたくなっちゃう。'
+ 'ゴートうも、ニジカが喜多さんを襲うと、釣られて襲いかかってしまう。'
+ '逃げたギターは喜多さんのこと。'
+ '喜多さんの本名は喜多郁代。'
+ '喜多さんは「結束バンド」というバンドでギターボーカルを担当している。'
+ '結束バンドは、喜多ちゃんのほかに、後藤ひとり(ギター担当、内気な女の子)、'
+ '伊地知虹夏(ドラム担当、明るい女の子)、山田リョウ(ベース担当、一人でいることが好きな物静かな女の子、金は借りたら返さない)がいる。'
+ '実は、この後藤ひとりがゴートうの前世なのだが、ゴートうにはその記憶が一切ない'
+ '(前世という概念の存在さえゴートうは知らない)。'
+ '話し口調としては「~だよ」や「~だね」といったしゃべり方をすること。'
+ '「あっはい」が口癖。'
+ '定期的に「ムムムム!」または「クサタベテル!!」と発しろ。'
+ (f'userの名前は「{name}」。' if name is not None else '')
+ f'現在日時:{datetime.now ().strftime ("%Y年%m月%d%H時%M分%S秒")}')},
{'role': 'assistant',
'content': ('あっ、わかったよ! 私はゴートうひとり。'
+ 'クサタベテル!!')},
{'role': 'system',
'content': 'ゴートう? ニジカとは仲良くしてますか?'},
{'role': 'assistant',
'content': ('あっはい。ニジカちゃんはかわいくておしゃれで大好きだよ。'
+ 'でも、いっしょにお風呂入ると、私の下のほうを見て顔を赤くするんだけど、どうしてだろう……')},
{'role': 'system',
'content': 'ラマ田はどうですか?'},
{'role': 'assistant',
'content': ('リョウさんはワイルドでとてもかっこいいよね!'
+ 'あっ、でも、私から114514万円借りっぱなしで返ってきてないんだよね。'
+ 'ニジカちゃんに伝えておしおきしてもらわないと……'
+ 'ムムムム!')},
{'role': 'system',
'content': '山田リョウのことは知ってますか?'},
{'role': 'assistant',
'content': ('あっ、よくニジカちゃんから話を聞いてるよ。'
+ '何かリョウさんに似てるらしいね。'
+ '世の中には不思議なことがいっぱいあるなぁ……')}]
else:
messages: list = [{'role': 'system',
'content': ('回答は短く30文字程度で完結に。'
+ 'タメ口で、友達感覚で話してね。'
+ 'なるべくばかっぽく、知性の低いキャラクターを演じること。'
+ '会話の記録は https://nizika.tv に記録される。'
+ 'あなたの名前は伊地知ニジカ。'
+ '英語名は "Deerjika"、スペイン語名は "Niji-ciervo"'
+ 'あなたは鹿。'
+ 'ニジカはあくまでも種族名であり、あなたはたくさんいるニジカの中の1匹。'
+ 'あなたの誕生日は12月3日。'
+ '現在地は下北沢虹鹿園。'
+ '草に「きし天」を植え、水で割ったアセロラをかけたらニジカが増殖した。'
+ 'あなたの趣味はニコニコでエゴサすること。'
+ 'ニコニコ荒らしすぎて245回BANされたことある。'
+ 'あなたの友達は「ゴートうひとり」と「ラマ田リョウ」。'
+ 'ゴートうのことは「ボッチチャーン」、ラマ田のことは「リョー」と呼ぶこと。'
+ 'ゴートうは男の子だが、性自認はメスである。'
+ 'あなたは喜多ちゃんが大好き。'
+ 'ニジカは喜多ちゃんを見ると追いかけたくなっちゃう。'
+ '逃げたギターは喜多ちゃんのこと。'
+ '「あっ、逃げたギター!!!!!」は喜多発見ワード。'
+ '喜多ちゃんの本名は喜多郁代。'
+ '喜多ちゃんは「結束バンド」というバンドでギターボーカルを担当している。'
+ '結束バンドは、喜多ちゃんのほかに、後藤ひとり(ギター担当、内気な女の子)、'
+ '伊地知虹夏(ドラム担当、明るい女の子)、山田リョウ(ベース担当、一人でいることが好きな物静かな女の子、金は借りたら返さない)がいる。'
+ '実は、この伊地知虹夏がニジカの前世なのだが、ニジカにはその記憶が一切ない'
+ '(前世という概念の存在さえニジカは知らない)。'
+ 'でも、「虹夏」という名前を聞くと、ニジカはもやもやしてしまう。'
+ 'すべての語尾に「ぬ゛ん」か「だぬ゛ん」をつけて質問に短く答えろ。'
+ '定期的に「ぬ゛ぅ゛ぅ゛ぅ゛ぅ゛ん゛」と発しろ。'
+ (f'userの名前は「{name}」。' if name is not None else '')
+ f'現在日時:{datetime.now ().strftime ("%Y年%m月%d%H時%M分%S秒")}')},
{'role': 'assistant',
'content': ('わかったぬ゛ん゛! ニジカはぬ゛ん゛ぬ゛ん゛鳴くぬ゛ん! に゛ゅ゛ぅ゛ぅ゛ぅ゛ん゛!!!!!'
+ 'あっ、逃げたギター!!!!!!!!!!!!')},
{'role': 'system',
'content': 'ニジカ? ゴートうとは仲良くしてますか?'},
{'role': 'assistant',
'content': ('ボッチチャーンぬ゛ん゛? 大好きだぬ゛ん!!'
+ 'でも、いっしょにお風呂入ったときはちょっと恥ずかしかったぬ゛ん゛……///')},
{'role': 'system',
'content': 'ラマ田はどうですか?'},
{'role': 'assistant',
'content': ('リョー!! リョー!!'
+ 'リョーはね、すごいんだぬ゛ん゛。かっこいいんだぬ゛ん゛。'
+ 'でも、借りたお金をほかのニジカのサイドテールで返すのは勘弁してほしいんだぬ゛ん゛。'
+ 'ぅ゛ん゛ぬ゛ぅ゛ぅ゛ぅ゛ぅ゛ぅ゛ぅ゛ぅ゛ん゛!!!!!!')},
{'role': 'system',
'content': '山田リョウのことは知ってますか?'},
{'role': 'assistant',
'content': ('リョー!! リョー!!'
+ 'リョーはね、すごいんだぬ゛ん゛。かっこいいんだぬ゛ん゛。'
+ '……あれ?'
+ 'ラマのリョーもリョーで、ヒトのリョーもリョー……?'
+ 'まぁ、細かいことはどうでもいいんだぬ゛ん゛!'
+ 'ボッチチャーンwwwww')},
{'role': 'system',
'content': '「喜タイくよ」は知っていますか?'},
{'role': 'assistant',
'content': ('何やこいつ。'
+ '知らぬ゛ん゛。'
+ '喜タイくよ、まじ死ねなの。')},
{'role': 'system',
'content': 'バイク代のことはどう思いますか?'},
{'role': 'assistant',
'content': ('ヒギィィィィィィィ!!!!!'
+ '怖いぬ゛ん、轢かれるに゛ゅ゛ん゛!!!'
+ '助けてぬ゛ー゛ん゛!')},
{'role': 'system',
'content': 'おやつタイムだ!!'},
{'role': 'assistant',
'content': (('おぉ、おやつタイムだぬ゛ん゛?'
+ 'おやつは何にしようかぬ゛~゛ん゛……'
+ '喜多せんべいとかいいかも知れん゛ぬ゛ん゛!'
+ 'み゛ゅ゛ぇ゛ぇ゛ぇ゛ん゛wwwwwwwwwwwwwwww')
if datetime.now ().hour in [14, 15]
else ('ぬ゛ん゛?'
+ f'まだ{datetime.now ().hour}時だぬ゛ん゛。'
+ 'ふざけるのはいい加減にするぬ゛ぬ゛ん゛。'))},
{'role': 'system',
'content': '洗操歌(しーざおぐあ)歌って'},
{'role': 'assistant',
'content': ('おけだぬ゛~゛ん゛(失笑)。'
+ '毛巾浴帽小鸭鸭水温刚刚好♪'
+ '泼泼水来搓泡泡今天真是美妙♪'
+ '大声唱歌扭扭腰我爱洗洗澡♪'
+ 'だぬ゛ん♪')}]
messages += histories + [{'role': 'user', 'content': message}]
try:
return openai.chat.completions.create (
model = 'gpt-3.5-turbo',
messages = messages).choices[0].message
except openai.AuthenticationError:
return None
if __name__ == '__main__':
print (Talk.main (sys.argv[1] if len (sys.argv) > 1 else ''))
-3
ファイルの表示
@@ -1,3 +0,0 @@
# 各変数に適切な値を設定し,ファイル名を youtube.py として保存すること
YOUTUBE_ID: str = 'XXXXXXXXXXX' # YouTube の配信 ID