by Rain Chu | 5 月 7, 2023 | AI, Chat
ChatGPT 一開始出來的時候還沒有開放 API 的時候,就有很多人用 Session key 的方法去使用他的服務,到現在雖然說用官方的 OpenAPI 已經很強大了,但缺點是 ChatGPT 永遠比較新,像是剛出來 ChatGPT 4 的時候,就沒有 API 可以用,都要等好幾個月,這時候只能使用 Session key 的方法去存取服務,這個方法可以採用 revChatGPT
revChatGPT 的三種安裝方法
原始碼下載:
https://github.com/acheong08/ChatGPT
Pip 安裝
https://pypi.org/project/revChatGPT/
只要打下面的指令就可以安裝
python -m pip install --upgrade revChatGPT
revChatGPT 的使用方法
免費使用要用 V1 ,免費版本會有些限制,目前的限制如下
- Proxy server: 5 requests / 10 seconds
- OpenAI: 50 requests / hour for each account
採用登入方法,要去 config.json 中填入你的帳號和密碼
{
"email": "email",
"password": "your password"
}
採用 Session Key 的方法,要去你的瀏覽器中,找到你的 Key 並且回填,但這種方法,一旦你登出後就要重新來過,只有自己一個人使用的時候可以用,比較不推薦,使用方法,先點下面的連結
https://chat.openai.com/api/auth/session
找到 accessToken 後面的文字,複製後取代 <access_token> 即可
{
"access_token": "<access_token>"
}
設定完成後可以建立一個 Python 檔案,測試一下
from revChatGPT.V1 import Chatbot
chatbot = Chatbot(config={
"access_token": "<your access_token>"
})
print("Chatbot: ")
prev_text = ""
for data in chatbot.ask(
"請給我10個拯救地球的好主意",
):
message = data["message"][len(prev_text) :]
print(message, end="", flush=True)
prev_text = data["message"]
print()
OpenAI 官方 Python API
這邊網路教學很多,而且常常在改,我就放一個教學,可以直接去看一下
by Rain Chu | 12 月 26, 2022 | Python, Raspberry Pi, 程式
如果想要用 Raspberry 樹梅派打造自己擁有的播放器,首選就是用VLC,可以全功能的做各種高難度的自訂控制,真的有找不到的功能,就自己再添加一下就可以了。
首先要先安裝 VLC
接下來安裝 Python VLC
python -m pip install python-vlc
封裝一個 VLC.py
import os, time
# 設置VLC庫路徑,需在import vlc之前
os.environ['PYTHON_VLC_MODULE_PATH'] = "./vlc-3.0.6"
import vlc
class Player:
'''
args:設置 options
'''
def __init__(self, *args):
if args:
instance = vlc.Instance(*args)
self.media = instance.media_player_new()
else:
self.media = vlc.MediaPlayer()
# 設置待播放的url地址或本地文件路徑,每次調用都會重新加載資源
def set_uri(self, uri):
self.media.set_mrl(uri)
# 播放 成功返回0,失敗返回-1
def play(self, path=None):
if path:
self.set_uri(path)
return self.media.play()
else:
return self.media.play()
# 暫停
def pause(self):
self.media.pause()
# 恢復
def resume(self):
self.media.set_pause(0)
# 停止
def stop(self):
self.media.stop()
# 釋放資源
def release(self):
return self.media.release()
# 是否正在播放
def is_playing(self):
return self.media.is_playing()
# 已播放時間,返回毫秒值
def get_time(self):
return self.media.get_time()
# 拖動指定的毫秒值處播放。成功返回0,失敗返回-1 (需要注意,只有當前多媒體格式或流媒體協議支持才會生效)
def set_time(self, ms):
return self.media.get_time()
# 音視頻總長度,返回毫秒值
def get_length(self):
return self.media.get_length()
# 獲取當前音量(0~100)
def get_volume(self):
return self.media.audio_get_volume()
# 設置音量(0~100)
def set_volume(self, volume):
return self.media.audio_set_volume(volume)
# 返回當前狀態:正在播放;暫停中;其他
def get_state(self):
state = self.media.get_state()
if state == vlc.State.Playing:
return 1
elif state == vlc.State.Paused:
return 0
else:
return -1
# 當前播放進度情況。返回0.0~1.0之間的浮點數
def get_position(self):
return self.media.get_position()
# 拖動當前進度,傳入0.0~1.0之間的浮點數(需要注意,只有當前多媒體格式或流媒體協議支持才會生效)
def set_position(self, float_val):
return self.media.set_position(float_val)
# 獲取當前文件播放速率
def get_rate(self):
return self.media.get_rate()
# 設置播放速率(如:1.2,表示加速1.2倍播放)
def set_rate(self, rate):
return self.media.set_rate(rate)
# 設置寬高比率(如"16:9","4:3")
def set_ratio(self, ratio):
self.media.video_set_scale(0) # 必須設置為0,否則無法修改屏幕寬高
self.media.video_set_aspect_ratio(ratio)
# 註冊監聽器
def add_callback(self, event_type, callback):
self.media.event_manager().event_attach(event_type, callback)
# 移除監聽器
def remove_callback(self, event_type, callback):
self.media.event_manager().event_detach(event_type, callback)
使用VLC.py
def my_call_back(event):
print("call:", player.get_time())
if "__main__" == __name__:
player = Player()
player.add_callback(vlc.EventType.MediaPlayerTimeChanged, my_call_back)
player.play("test.mp3")
# 防止当前进程退出
while True:
pass
def my_call_back(event):
print("call:", player.get_time())
官方文檔
https://www.olivieraubert.net/vlc/python-ctypes/doc/
參考資料
https://zhuanlan.zhihu.com/p/69906080
by Rain Chu | 9 月 11, 2021 | NFC, Raspberry Pi, 幼兒園, 科技
最近接到一個很有意義的任務,一個大型幼兒園提出,最近Cov-19的疫情下,都不准家長進入幼兒園,也想要減少家長來接送小孩時候的接觸,不知道有沒有甚麼好的科技手段可以解決在Cov-19的疫情下,讓家長不用說話也不用接觸,並且來接小孩的時候,幼兒園就可以知道,是那位小朋友要出去?
分析問題如下:
- Cov-19的疫情下,不希望過多的接觸
- 最好可以家長免下車,幼兒園就可以知道那位小朋友的家長來接送了
- 成本要低,並且不要為了解決一個家長接送的問題,搞得幼兒園需要處理很多事情,讓流程反而複雜化了
解方如下:
- 利用家長卡(RFID)可以不用接觸,就可以得知是那位孩童的家長到了
- 利用AI語音合成,當家長卡靠卡的時候,利用Microsoft的語音合成服務,提供自然且流暢的語音,提醒幼兒園那位小朋友的家長來了
家長接送樁,相關硬體準備如下:
廣播主機,家長接送區的靠卡行動樁,以及家長卡,蜂鳴器(喇叭)、NFC讀卡機
家長接送樁,相關軟體規畫如下:
- Google 合成語音
- Microsoft 合成語音
- 訊飛 合成語音
- Web Server 接收指令
- Web Client 發送指令
- 資料庫 家長與學生的資料庫
家長接送樁,作法如下:
- 建立家長與學童的資料庫,建立其對應關係
- 將學童的呼叫語音,透由AI程式預先合成自然且流暢的語音,並且放於廣播主機中
- 撰寫家長接送樁的RFID(NFC)的讀卡程式,並且透過內部網路,發送讀取到的卡片資訊傳送到廣播主機上頭
- 廣播主機對應資訊,並且透過音響廣播到教室區
採用家長接送樁主機的好處:
- 全程不用下車,也不用接觸物品,人員,靠卡就可以呼叫小朋友出來
- 節省人力,無論是刮風下雨、大熱天、颱風天等等,都可以讓家長接送樁,來幫忙家長服務
- 可靠性佳,不用怕認錯人,也不用怕小朋友被壞人接走
- 成本低,一套設備下來,包含備援,準備兩組設備也不到一個人的月薪
夏恩英語FB
夏恩幼兒園 林口翰科旗艦校 最具世界競爭高度的國際級幼兒園
翰科教育林口國際幼兒園
妳也可以用小米手環呼叫小朋友
怎麼把門禁卡變手環
近期留言