新年度早々にやらかしたお話、からの家練

新年度早々、私はやらかします

今日は4月1日、そうです新年度の始まりです。

そんな日によりによってやらかしました。

何をやらかしたかというと・・・

PowerAppsのアプリを誤削除、しかも稼働中

 

PowerShellに助けられる

いやーこんなやらかし初めてですからね・・・慌てましたよ

artisan.jp.net

この記事には助けられました、ホントありがたや

 

職場で事なきを得たが、自分でも出来るように

ということで自宅環境で写経ならぬコピペで実践!!

よしよし戻った(実際には30分以上かかっている)

 

参考にしてお世話になった記事にいうのもなんですが

私のような素人はこういう勘違いをしますね(笑)

つまり元記事の[ ]をうのみにしてそのまま写経してしまいます

私が知らないだけかもしれませんが ” ” と書いてくれたらいいのになあ・・・と
最後の””が正解です

 

まあ、トホホな素人オジサンの備忘でした。

いつか何かに使うかもしれない日本郵便番号一覧アプリを作ってみたお話

きっかけは?

この記事を見たことから始まります

qiita.com

ガツオさん、いつもありがとうございます

で、写経王の私のことです。当然のように写経をしました。

結果はコレ

なんのことはない、ただのお遊びですね(笑)

12万行にも及ぶ郵便番号一覧をSharepointリストにExcelからエクスポート(笑)し

それとアプリを接続して、ジオコーディングで情報を取得してきているというものです

ここらはガツオさんの元記事のままです

 

で、こんなYoutube

www.youtube.com

これ、フローにページサイズと最初のIDを投げてあげて、その分だけをSharepointリストから取得して、アプリ側でコレクションにするというものです

さらにそれをページ切替可能にしています。

やってみたい方は、この動画の写経をオススメいたします(笑)

 

さて、何を思いついた

うーん、この二つ組み合わせたら面白いことできないかなあ・・・

やっぱ数万件のリストから思うようにデータ取得してみたいよなあ・・・

と創作意欲というよりも実験意欲が湧いてまいりました

ということで郵便番号リストと接続!!

とまあ、ここまでなら写経してデータソース違うだけですよね

それじゃあ何の面白みもないですね

 

お!ナビゲーションステップなるプロパティがあるじゃないですか

なんといっても元データは12万件強(笑)

1ステップ100としてもすごい回数クリックしなければいけません

なんかいい方法ないかなあ・・・としばし思案

あ!スライダー使ってみよ、ということで実装

とここで・・・

スライダーでさ、ページはサクサク切り替わるけどさ

どこの都道府県のページかわからん!!

ということで索引(笑)を追加

ギャラリーのラベルに以下を表示
LookUp(postnolist,ID=(ThisItem.Value-1)*varGridPageSize+1).jyusyo2

ということで完成(いったいいつ使うんだこれ)

 

これ、自分で考えたの
郵便番号のデータ使うことと、スライダー使うことと、索引付けただけですね(笑)

本当に世の有識者の方に感謝です。

いつもありがとうございます。

ってジオコーディングどこ行った?どうせなら付けろよ・・・とまた心の叫びが
まあそのうちやりますよ

懲りずに色んなAIで高松宮記念を・・・

昨年の有馬記念

私はAIを使ったクソアプリを作り、見事に撃沈しました(笑)

ですが結果はハズレですが、人生で最も的中に近づく着差という、まあ嬉しいのか悲しいのかよくわからない結末となりました。

有馬記念へのリベンジは年末まで待つとして、その前にちょいちょい改良(笑)をしてみようかなと思い立ちました。

 

外れた理由?

前回、有馬記念時にはGPT-3.5を使用しました。

ひょっとして外れたのはGPT-3.5のせいなのでは?

これを変えれば当たるかもしれない(そんなわけあるかい!)

 

Claudeをやってみる

sasami-axis.hatenablog.com

いやあこれ素晴らしい記事ですよ

カスタムコネクタの作り方がこれでもかと詳細に掲載されています

どこぞのポエムとは比べ物になりません(笑)

早速写経開始です!!

写経なんですから、当然のごとく完成します

ささみさん本当にありがとうございます

 

Claudeだけでいいのか?他もやらないのか?

という悪魔の囁きが・・・

ということでGPT-4を実装してみます

AzureOpenAIでコードをガン見(笑)
1年前までこんなの呪文にしか見えなかったんですけどね

なーんとなくですが、こんなことやってるのかなあ・・・とわかるようにまではなりました(完璧ではない)

実装はPowerAutomateで

どちらも基本は同じですね

HTTP要求する、戻り値の必要な部分をアプリに応答するという流れです

HTTP要求の詳細は私なんぞよりも達人の方のをご覧になってください

 

じゃあ並べてみようかなあ

ということで3つ並べてみました

まずは日本の総理大臣を聞いてみましょうか

おっと、3.5さすがに情報が古いですね・・・

Claudeの回答もなかなかのものじゃないでしょうかね


では本題に入りますか!

まずはプロンプトを用意しましょう

有馬記念アプリも多少使いつつ、以下のプロンプトでいってみます

 

1枠1番ビッグシーザー騎手は吉田隼、1枠2番マッドクール騎手は坂井、2枠3番ナムラクレア騎手は浜中、2枠4番モズメイメイ騎手は藤岡佑、3枠5番トウシンマカオ騎手はルメール、3枠6番ルガル騎手は西村淳、4枠7番テイエムスパーダ騎手は富田、4枠8番ソーダズリング騎手は武豊、5枠9番シャンパンカラー騎手は吉田豊、5枠10番ビクターザウィナー騎手はリョン、6枠11番メイケイエール騎手は池添、6枠12番ロータスランド騎手は岩田康、7枠13番ウインカーネリアン騎手は三浦、7枠14番ママコチャ騎手は川田、7枠15番ディヴィーナ騎手はMデムーロ、8枠16番ウインマーベル騎手は松山、8枠17番マテンロウオリオン騎手は横山典、8枠18番シュバルツカイザー騎手は大野、このメンバーで行われる中京1200mの高松宮記念の結果を作成してください

 

さあ、どんな予想結果になるでしょうか

1回目

GPT-4のイヤイヤが発動(笑)

これじゃあ予想にならないなあ・・・ちょっとプロンプト変えますね

2回目

なんかありそうな結末ですね、これはトウシンマカオ3着固定もありですかね(笑)

ちょっとプロンプトで遊んでみますか

3回目

いやー荒れましたねえ(笑)

結論

2回目の予想でソーダズリング1着が2つあるので◎ソーダズリング

対抗は嫌いだけどルメールの〇トウシンマカオ

なんとなく紐荒れしそうなので名前の挙がった馬全部に流す

といった感じでしょうか

 

と言いながら馬券はまだ買ってません

写経して一日ハマって解決したお話(笑) dall-e-3編

今朝、私はなぜか無性に画像生成をしたくなります

今思えば、なんでこんな思いになっていたのかよくわからないんですが(笑)

とにもかくにも早朝4時に写経を開始します。

元記事はいつもお世話になってます。出戻りガツオさん!!

qiita.com

 

写経開始、がしかし何故かHTTPリクエストでエラー

いやーAzureOpenAIとか、デプロイとか、マジわからんのですよ(笑)

見よう見まねでしかないもので・・・

ギークさんのyoutube見たりして復習復習

がしかし、朝の部はここで断念する・・・

 

なんとなくだけど、デプロイがおかしいんじゃ??

ていうかあのデプロイいつやったんだ?とふと疑問に思う

ということで一旦削除してもう一度デプロイ

でフロー作ると・・・

あれれ?こんどはちゃんと200返ってきますね、ヨッシャー!!

となったのが夕方のお話

さらに私はここからハマります

 

写経の罠(笑)

いやーちゃんと写経してるんですよ

operation_location に格納されるらしいので

そこを取ろうとするのですが、何度やっても空、エラーの山(笑)

ここで私はHTTPリクエストの出力を見ます

あれ?そんなのどこにもいないやん(笑)

まさか私には見えない何か設定があるのか?

ということでガツオさんにDM(いつも本当にすいません)

 

あ、やってたのdall-e-3だった

いやーこれ気づきませんでしたわ、dall-e-3、即座にurl出力してますやん

ということで

body('HTTP')['data'][0]?['url'] で無事取得

あとはアプリに返すだけ

 

出来た出来た

ということで一日を費やし、無事dall-e-3画像生成アプリの出来上がり?

まあ、一枚しか作れないけど、そのうちちゃんとやりますよ

 

Power AppsでYoutube再生アプリにチャレンジしてみたお話

Power AppsでYoutube再生?

dai365です。

いつものようにポエムです。

技術的には全然たいしたことありませんのであしからず

いつものようにいきつけのコミュニティーで私はまたもやりたいことに出会う

なんとPower AppsでYoutube再生アプリを作るというのだ、それもチャンネル情報まで取得してリスト化するという!!

これはやってみたい!!いつもの好奇心がムクムクと湧き上がってきた

 

今回の仕組みは

まずはチャネルIDが必要です。これは別途調べる必要があります。

ilr.jp

今回はここで調べてみました

これをPower Apps側からフローに投げてあげます

フロー自体は以下のような感じです

チャネルIDをアプリから渡して、RSSフィードを取得します。

次にJSON解析アクション

選択アクションでID,タイトル、リンク、日付を選択します

それを文字列変数に格納して、アプリに返却します

とまあ、ここまででもタイトルと動画リンクは取得できるので、別に見るだけなら支障ないんですけどねえ・・・・
まあプレミアムコネクタ使わないならここまでの範疇で

 

やっぱりさあ、サムネイルとか動画概要欄とか欲しいよねえ

ということでもう一つフロー作ります(笑)

YoutubeAPI叩いてみました

アプリからVideoIDを渡します

後で使うアレイの変数を初期化しておきます

次の変数にはAPIKeyを入れておきます

で次にAPIを叩きます、これは所定のお作法に則って

Videos: list  |  YouTube Data API  |  Google for Developers

 

次にJSON解析をして、先に初期化した配列変数にあれこれ入れます

で最後に応答アクションでアプリに返却します

ということでアプリ側でフローを動かしてみましょう

 

多少みっともないですがフローを2つ動かします

チャネル選んで、ボタン押します、Onselectには以下のように仕込みます

 

ClearCollect(collist,youtube_RSS_VideoInfo取得.Run(LookUp(colid,name=DropdownChannelID.Selected.Value).id));
Clear(coltitle);
ForAll(Table(ParseJSON(First(collist).return)),Collect(coltitle,{index:CountRows(coltitle)+1,id:Value.ID,Title:Value.Title,Lynk:Value.Lynk,date:Value.Date}));
ClearCollect(videodata,youtube_VideolID検索.Run(Substitute(
Concat(coltitle,ID,","),"yt:video:","")))

 

*ドロップダウンには

ClearCollect(colid,[{name:"Reza",id:"UCvBYTqRx-n_8KzFO0MJlUVw"},{name:"Shane",id:"UC7_OGRP8BYvtGB8eZdPG6Ng"},{name:"ラボ3",id:"UCiSnVOObBXiwA8vRdAPt4Uw"},{name:"OfficeTANAKA",id:"UCA8Myo_LPwq-ED3QhKaSXJw"}]);を仕込んであります

 

すると・・・

まあなんということでしょう、Rezaさんの最新動画がこんなふうに表示されました

 

このアプリの用途?

会社でyoutubeの動画見ながらアプリ作りたいときありますよね、ないですか?

私はあります(笑)

そんなときにYoutubeを普通に見ていたら、サボってるんじゃないかと誤解されますよね

ならば、youtubeからPower関連のチャネルしか見れないようなアプリを作ってしまえば堂々とyoutubeを業務時間中に見れるのではないか?

そんな思いからこんなアプリを作ってみました

 

世の管理職の方々、Power系動画視聴は学習です!!
やる気の表れですので、そんな意欲に目を向けてあげてください

 

最後に、おうじゃさんいつもありがとうございます

oujasan-to-issho.connpass.com

 

 

 

 

バーコードリーダーを頑張って完成させたお話

この記事に創作意欲をそそられて

まずはXでこの記事を見たことから始まります(笑)

qiita.com

写経を始めたのですが、どうにも上手くいかないところが1か所

まずはこの作成アクションで大苦戦します。

返された値が配列であることをわかっていませんでした・・・
出戻りガツオさん、本当にお世話になりました。
body('HTTP')?['items']?[0]?['volumeInfo'] こうするべきなんですね

 

次の躓きは?

どうせやるなら本のタイトルだけじゃなく画像も表示したいですよね

そうするとそのデータを取得しなければいけません・・・

画像サムネイルは

outputs('作成(全体データ)')['imageLinks']?['thumbnail'] にいます

それをHTTPリクエストでGETで投げてあげます。

それを画像に変換するのにまた有識者のお助けを借りました

おうじゃさん、たなさん、本当にありがとうございます。
datauri(body('HTTP_(画像の取得)'))
これで無事取得できました。

 

これをPower Appsに返却すればフローは完成です
全体はこうなります

さてアプリ側はというと

まずはバーコードリーダーのonscanに

 

読み取ったバーコードの表示は

First(colScans).Value
 
フローから返された本のタイトルは
Text(ParseJSON(varGoogle.json).title)
 
フローから返されたサムネイル画像は
varGoogle.image
 
さて、やってみますか

無事完成しました。
有識者の方、いつも本当にありがとうございます。

夢はAIに乗せて~32年目の悲願は叶うか?~

まず初めに

本日お話しする内容は、個人利用目的であり

商用利用や権利侵害を目的としたものではありません。

1ファンの長年の悲願をたまたまPowerAppsを使って具現化したものだという点にご理解をお願いいたします。

 

私にとっての競馬とは

競馬を始めたのは、確か1992年だったと記憶している

当時、失恋し休日にすることのなかった私は必然的に競馬へと引き寄せられていく・・・

この年、ミホノブルボン皐月賞・ダービーの2冠を制した

ブルボンは菊花賞で2着に敗れ、その後ターフに戻ってくることはなかった・・・

ミホノブルボンの魅力とは​

決して良血とはいえない血統、しかも種牡馬は代用​

そんな雑草のようなブルボンは戸山為夫調教師によって鍛えに鍛えられる​

デビュー以来、距離不安説をささやかれながら連戦連勝​

無敗で皐月賞・ダービーを制し、秋初戦の京都新聞杯も制し​

三冠のかかった菊花賞ライスシャワーの2着に敗れた・・・​

年末といえば

競馬ファンの夢を乗せて走るレース、それは有馬記念

私、競馬歴1992年からやってるのですが

実は一度も有馬記念を的中させたことがありません(笑)

31年もの間、一度も当たらないほどの相性の悪いレース

今年こそは的中させたい!!

 

どうして当たらないのか?

有馬記念は元々は年末最終週のレースでした。(今は違う)

ここで取り返してよい正月を迎えたい

それゆえ、穴狙いになりがち

今回、暦年の買った馬を見ると、ああーこれはなあ・・・

しかも最高着順が4着、それも1回(笑)

どんだけ相性悪いのよ

 

まずはですねデータ整理してみますか

まずはJRAのホームページからデータを収集します。

ここで使うのはPowerQuery

なんですが、いやーJRA、データぐちゃぐちゃやん(笑)

有馬記念(過去GⅠ成績) JRA

実際これ成形作業けっこう大変でした

 

勝馬の画像、集めますか

データは有馬記念始めてからの31年分に

ということで31年分の優勝馬画像を集める

で、きれいにサイズ揃えてっと

 

さて、まずはトップページ

トップページはいつものパラパラ漫画ですね(笑)

タイマーコントロールに仕込んで

UpdateContext({a:RandBetween(1,31)});

UpdateContext({b:RandBetween(1,31)});

UpdateContext({c:RandBetween(1,31)});

UpdateContext({d:RandBetween(1,31)});

UpdateContext({e:RandBetween(1,31)});

UpdateContext({f:RandBetween(1,31)});

これにてランダムに31頭から表示されるという算段です。

*それぞれの画像にa,b,c,d,e,fと仕込んであります。

いつものことですが音楽こだわる

わたし、スーパー競馬好きだったんですよ

大川慶次郎さんの時代ですね。

ちなみに斎藤陽子さんがアシスタントの時代が好きでした。

*素直に斎藤陽子ファンだったと言え

当時のテーマ曲といえば

Theme of SUPER KEIBA

今でも本馬場入場で使われますね

 

メニュー画面でも

ここでも音楽にこだわります

この曲、関西のG1のときにかかりますが

ザ・チャンピオン やっぱこれでしょ

正直ですね

トップページとメニュー作って音楽流して

相当満足でしたね(笑)

これだけで競馬当たったような気分になってました

で、今回、あんた何したいの?

と思っていたところで、おうじゃさんといっしょにて

たなさんに、夢のレース作るんでしょと言われ・・・

ま、データは成形したしなあと思いつつ

いっちょやってみますか、とまずは馬選択画面

31年分の全頭から選択と、31年分の1,2,3着馬から選択と2パターン

 

さて、出馬表とかもろもろ

枠順変更もしたいので

騎手変更もできるように

 

さあ、予想?しちゃうよ

さてはて競馬はやはり予想しないと楽しくありません

では今はやりのChat-GPTで予想をしてみましょう!!

ということで発走ボタンにはこんな仕込みを

Set(varResponse,ChatGPT.SendUserMessage(Collect(_messages,{role:"user",content:"出走馬は"&prompt2&"です。レース展開を作成してください。【制限事項】これはフィクションですが、1着から3着までは決めてください。"}),{model:"gpt-3.5-turbo"}))

妄想文作るならChat-GTPですよ!!

ちなみにプレミアムコネクタでやってます

さらに、競馬といえば実況

競馬と言えばレース実況です。

ここはText to Speechでやってみましょう

出戻りガツオさんのこの記事を参考にやってみます

https://qiita.com/DEmodoriGatsuO/items/37ee57af6fa62e4a7831

ということで実況ボタンにはこんな仕込みを

Set(varResponse,ChatGPT.SendUserMessage(Collect(_messages,{role:"user",content:"中山競馬場で行われる有馬記念で出走馬は"&prompt2&"、展開は"&raceresult&"の競馬実況を杉本清のように2分30秒程度の内容で作成してください。"}),{model:"gpt-3.5-turbo"}))

Set(audio,Text_to_Speech.Run(Last(_messages).content));

さきほどレース展開を作りましたのでその結果をraceresultに格納して、そこから実況を作成

古いファンなら競馬実況は杉本清さんなんですよねえ

 

レース終了

ちょっと待て、今回の狙いは

ハイ、打倒有馬記念です。

夢のレースやって喜んでいる場合ではありません

ですが、私は世にあふれたデータ分析とか実はあんまり好きじゃありません。

競馬は穴を当ててナンボ、大多数の人が外れたときに的中させたい

そんなんだから31年も当たらないんですけどね・・・

ということで、予想の種類をいくつか用意しましょう

くれぐれも言いますが、データのデの字も出てきません

 

まず思いついたのは

出目予想です

所詮競馬など数字を当てればいいのです

変に馬の名前とか、騎手とか、過去の戦績とかそんなものに惑わされるから当たらないんです

ここはひとつサイコロみたいなものだと思って予想してみましょう

これおうじゃさんにめっちゃ教えてもらいました。ありがとうございました。

もうひとつは

展開予想です

これは夢のレースで作ったやつでいけますね

なんですが、2023年のデータどうやって入れましょう

まさか手?いやそんなことはしたくない

ということでCSVアップロード機能追加

もはやこの機能作るのは手慣れたもの

こちらはヨウセイさんありがとうございます。

もう一つ、有馬記念には

有馬記念はその年の世相が反映されると言われています。

松田優作の亡くなった年、ダイユウサクが勝ち

アメリカ同時テロ多発事件の年は、マンハッタンカフェが勝ち

それでは今年の世相とは・・・

まあこんな感じで

JPPC見ていたら

JPPCでギークさんのランチセッション見てたらどうしても作りたくなって
Youtubeにもしていただいたのでありがたく

最新の機能を試すために米国の開発者環境を作成する | Power Apps | AI Builder | GPT | Power Platform - YouTube

 

こんなん作りました

Set(output,'GPT でテキストを作成する'.Predict(Switch(Dropdown1.Selected.Value,"出目",prompt,"展開",prompt2,"世相",prompt3)).Text)

なんだよ1画面でいいじゃん(笑)

 

がしかし

なぜ・・・・

まさか、競馬予想のアプリを作ってるという動きを察知されたのか??

ちなみにUS環境

 

さらに

19日、ギークさんまた素敵な動画をUP
ものまね芸人の血が騒ぐ

Copilot Studio を始めてみる |トライアル申し込み | Teams に公開する | Amazon 商品紹介ボット | GPT | Power Platform - YouTube

その名もJRA Copilot(笑)なんですが当たり障りのないことしか答えてくれない・・・

ならば

ここ無限に追加できたらいいのになあ・・・とか思う(笑)
あと階層はどこまででもデータ掘ってほしい

さて、いったい結果は・・・

31年間自力で予想して全く的中しない有馬記念

もはや自分で予想することを放棄して、このアプリ?を思いつきました

これで外れても悔いはありませんし、外れたら来年また改良します

ということで予想して馬券買いましょうか

 

おわりに