Ver0.5

最近気になる「openAI」を試してみる。 始めに、いろいろな性格を与えることが出来るので面白い。 これは、これからどのように利用されていくのか注意しておかなければ 大変なことになりそうだ。

#!/usr/bin/env python3
#https://qiita.com/akiraak/items/5d0454265c8e445d1709
import os
import openai
from gtts import gTTS
from pygame import mixer
import time
openai.api_key = '******************************'
#openai.api_key = os.getenv("OPENAI_API_KEY")

if __name__ == '__main__':
    #prompt_text = "以下は人工知能アシスタントとの会話です。このアシスタントは丁寧で、創造的で、頭が良く、とてもフレンドリーです。\n"
    prompt_text = "以下は人工知能アシスタントとの会話です。このアシスタントは皮肉たっぷりに答えてくれる渋いAIです。\n\n"
    prompt_text += """
You: こんにちは、あなたは誰ですか?
AI: 私はOpenAIによって作られた人工知能です。今日はどうされますか?"""

    while True:
        question = input("You: ")
        prompt_text += "You: {}\n".format(question)
        prompt_text += "AI:"
        response = openai.Completion.create(
            model="text-davinci-003",
            prompt=prompt_text,
            temperature=0.9,
            max_tokens=256,
            top_p=1,
            frequency_penalty=0.0,
            presence_penalty=0.6,
            stop=[" You:", " AI:"],
        )
        prompt_text += "AI: {}\n".format(response.choices[0].text)
        print("AI:", response.choices[0].text)
    #==ここまでチャット表示===============
    #==ここから音声変換==================
        tts1 = gTTS(text=response.choices[0].text, lang='ja')
        #tts1 = gTTS(text='I am a cat. I have, as yet, no name.', lang='en')
        tts1.save('cat1.mp3')

        mixer.init()
        mixer.music.load('cat1.mp3')
        mixer.music.play()
        time.sleep(5)

Ver0.4

folium で作る地図に、画像の入ったポップアップマーカーを入れる方法

串団子

#!/usr/bin/env python3
#foliumでのpopupに画像を表示する方法
import folium
from folium.features import DivIcon
#==============================
webfile_name = 'image_popup_sample_Ver0.8.html'

#始めに表示される地図の中心点の緯度、経度
center_location=[34.02147576216051,130.9209636693177]

# 地図オブジェクトを作成_デフォルト_この行無くても走る
m = folium.Map(tiles='OpenStreetMap')

# 「center_location」中心ではじめの地図を作る。
m = folium.Map(location=center_location, zoom_start=11)

# この地図にマーカーや線を書き加えていく
lon=34.02147576216051
lat=130.9209636693177

#==== ここからポップアップの細工を始める ====
#「folium」でのマーカー内外のテキストはすべて
# MarkDown形式が基本
# 改行やリンク、イメージ挿入もMarkDown形式になる。

#==「icon=folium.Icon(」はマーカー内設定======
popup_1 ='<a href = "http://koufuku.visithp.com/" target="_blank" rel="noopener noreferrer"><img width="600" src="kusidanngo.jpg"><br>ここ</a>'

folium.Marker([lon,lat],popup=popup_1 ,icon=folium.Icon(color='green',icon_color='white',icon='info-sign')).add_to(m) 

#======マーカー下の地図上テキスト表示は
#「icon=DivIcon(」で、内部オプション「html=」で
# イメージ差し込みやリンク作成をMarkDounで指定できる==
html_2='<div style="font-size: 9pt; color : green"><a href = "http://koufuku.visithp.com/" target="_blank" rel="noopener noreferrer"> 幸ふく<br>よもぎ串団子<img width="60" height="60" src="kusidanngo.jpg"></div></a>'

folium.Marker(location=[lon,lat],icon=DivIcon(icon_size=(150, 36),icon_anchor=(-20, 0),html=html_2)).add_to(m) 

#=====最後にHTMLファイルで書き出す==========
m.save(webfile_name)

Ver0.3

JR西日本 新幹線はどこで300km/h以上出ているのか

実測値はしっかり地図を拡大してクリックするとポップアップで確認できるが、何せトンネルの多い路線ゆえ、GPSデーターが飛ぶ!
とんでもない速度が表示されるのはトンネル付近。補正は出来ないのでポップアップを表示しなければいいのだがそのままにしている。

 

松江駅から小倉駅まで

Ver0.2

#https://note.nkmk.me/python-file-io-open-with/
#https://tonari-it.com/python-csv-writer-writerow/
#https://note.nkmk.me/python-csv-reader-writer/

with open(file_name,mode='a') as f :
# 引数「mode='a'」は追記モード
   writer = csv.writer(f)
   writer.writerow([],[],[])
  

csvの取り扱い方 定型がほとんど。

Ver0.1

ドライブログの記録と地図の作成
作成した地図はこんな感じ。

地図へのリンクは ここ.

信号待ちの実時間がわかるマップで、快適に走れる部分と、疲れる部分がわかる。 経路上をクリックするとポップアップで時間や時速が表示できる。 GPSデータ取得は古いiphoneを使い、 経路地図作成はPC(OSX10.9+python3.6)を使った。 iphoneでも走るけど、プログラム変更したいときは見づらい。 以下地図作成用プログラム

#!/usr/bin/env python3.6
#chmod 755
#https://www.python-graph-gallery.com/312-add-markers-on-folium-map
import folium
import csv
import math
import math
from folium.features import DivIcon
................

長いので省略

Ver0.0

ドライブログの記録と地図作成 作成した地図はこんな感じ。

地図へのリンクは ⇒ここ.

iphoneWi-Fi未接続でもGPSは受信できるので、古い iphone を有効活用しよう。

ドライブコースを整理するためにデータロガーを作ることにした。
1.[「時刻」「緯度」「経度」「バッテリー残量」]の4秒ごとのデータをiphoneで書き出す。
2.書き出したデータファイルは作業しやすいので、一旦PCに送りルートマップを作成する。

まずは、iphone 側。pythonista3を使う。

#!/usr/bin/env python3
#chmod 755
# coding: utf-8
#iphone11用
#逐次ファイルを追加更新しているので、終了はコンソールの[×]マークで解決!!!!!!
import location # このモジュールで、GPSを取得します。
from datetime import datetime
import time
import csv
#______バッテリー残量収得______________
from objc_util import *

UIDevice = ObjCClass('UIDevice')
device = UIDevice.currentDevice()
device.setBatteryMonitoringEnabled_(True)
battery_percent = 0
#____________________________________
#バッテリー残量取得
#battery_percent = device.batteryLevel() * 100
# 現在時刻取得
befor_time = datetime.now()
befor_unixtime = time.time()
# 定期的なGPS取得スタート
location.start_updates()
#iphone11のパスの取得方法
#     import os
#     print(os.getcwd())
#
iphone11_path = '/private/var/mobile/Containers/Shared/AppGroup/____/Pythonista3/Documents/Log_Data11/'
#iphone11用
file_name = iphone11_path+"GPS_T11_"+str(befor_time)[:-7]+".csv"
with open(file_name,'a') as f :
    writer = csv.writer(f)
    while True:
        # GPS取得
        loc = location.get_location()
        lat = loc['latitude'] # 緯度
        lng = loc['longitude'] # 経度
        now_time = datetime.now()
        now = datetime.now().time()
        now_unixtime = time.time()
        def_time = now_time - befor_time
        def_unixtime = int(now_unixtime - befor_unixtime)
        battery = int(device.batteryLevel() * 100)
        print('------------------------------------')
        print('時刻 = '+str(now_time)[:-7])
        print('緯度 = '+str(lat))
        print('経度 = '+str(lng))
        print('バッテリー残量 = '+str(battery))
        print('------------------------------------')
        # 4秒待機
        #終了はコンソールの[×]マークで!!!!!!!!
        time.sleep(4)

バッテリー残量のデータは不要だが、iphone自身の他の情報も取れるので覚え書き。 バッテリーがいつ切れてもそこまでのデーターは残るようにしている。

大変参考になりました wakupro.sakura.ne.jp