- 1. Python と OpenAI API を使う開発の前準備
- 2. AnacondaとVSCodeで開発環境を作る(備忘録)
- 3. 第3回空戦AIチャレンジで銀メダルと特別賞を獲得した話
- 4. Pythonでランダムウォークのシミュレーション
- 5. Pythonで「現在の日付と時刻の値を持つインスタンスを作成する」の動作を確認してみた
- 6. Cloud Run Jobsの引数にリストを与える
- 7. ろうとるがPythonを扱う、、(その21:ScapyでPort Forward)
- 8. ChatGPTと始めるReact:Pythonサーバ通信とカラフルな散布図生成編
- 9. 生成 AI で僕らのプログラミング勉強はどうなるのか?
- 10. Djangoの概要を掴む
- 11. Windows11のWSL2でSingularity上のAnaconda仮想環境を構築する手順 [外部SSD保存]
- 12. 【Flet】pageメソッドでDialogやBannerの表示/非表示を行う
- 13. 【生成AIアプリ100チャレンジ】(7)英会話アプリ
- 14. 【生成AIアプリ100チャレンジ】(6)会話トーク
- 15. Pythonで「タイムゾーンのインスタンスを生成する」の動作を確認してみた
- 16. Conditionals – CS50 Python
- 17. Pythonコードを使用してExcelでウィンドウ枠を固定・解除する方法
- 18. PG BATTLE 2023 参戦記(ましゅまろ担当)
- 19. Django初心者が見つけた海外勉強サイト
- 20. Mecabの付き合い方(Python)
Python と OpenAI API を使う開発の前準備
Python のインストールと、LangChain まわりのモジュールのインストールの手順です。2024/03 現在の情報です。
# 手順
– Git のインストール
– Anaconda のインストール
– Pytorch のインストール
– API Key の取得
– 環境変数の設定# Git のインストール
すでにインストールされている場合はスキップします。
## Windows の場合
下記からダウンロードしてインストールします。選択できるオプションはすべて default で問題ありません。
– [Git For Windows](https://gitforwindows.org/)
インストールされると「すべてのアプリ」の一覧に Git という項目が追加されます。
Windows ターミナルにプロファイルを追加することで、ターミナルでも Git Bash を使えるようになります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/266247/0f6e
AnacondaとVSCodeで開発環境を作る(備忘録)
## きっかけ
毎回PCでこの開発環境を作るのに手こずっている気がするので備忘録としてまとめました。
opencvを使いたいと思っていたため、そのインストールも行っています。## 環境構築までの道のり
まずはこちらを参考にしてやりました。
https://www.useful-python.com/env-anaconda-vscode-windows/
AnacondaとVSCodeのダウンロードはうまくいき標準搭載ライブラリを用いた使用はうまくいきました。
、、、がその後opencvをinstallして実際にimportしたところ次のようなエラーが吐かれました。
“`terminal:
DLL load failed while importing cv2:
“`## 結論
Anacondaを再インストールしたら普通にできました。
こちらを参考にしました。https://qiita.com/shiganai/items/11537a0083f978e6821d#%E7%92%B0%E5%A2%83
### 考えられる原因
正直わかりません、有識者の方は
第3回空戦AIチャレンジで銀メダルと特別賞を獲得した話
防衛装備庁主催の第3回空戦AIチャレンジに参加しました。3ヶ月間苦戦した結果銀メダルで、金メダルまであと一歩で悔しかったけど、特別賞を受賞していただきました。下記で少し思いを共有します。
![ai_2024.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/893830/a5abb68c-0bbf-7641-0775-7b134bcbe2ff.png)
# どのようなコンペ
1. 強化学習で2機対2機の空戦
2. 実際は強化学習を使わずにルールベースだけでも全然OK# なぜ苦戦した
1. 配布されたソースコードとドキュメントの量が多くて、理解するだけで1週間かかった
2. 座標系について全く知らなくて、ChatGPTに聞きながら3次元ベクトル処理のことを勉強
3. パソコンのスペックがそこまで良くなくて、1回の訓練 + その後の結果確認や検証だけで2-3日かかったので、実装したかったことが多いけど時間がない# 何のモデルを作った
1. ルールベース + 強化学習、強化学習はやはり限界があるので、
Pythonでランダムウォークのシミュレーション
## ランダムウォーク
ランダムウォークは、株価変動の数理モデルなどに用いられる確率過程のことです。ランダムウォークの定義は以下です。
### ランダムウォークの定義
**漸化式**
“` mathz(0)=0
z(t_{k+1})=z(t_{k})+\sqrt{\Delta t}\epsilon(k) k=0,1,2,…
\epsilon(k)~iid N(0,1)
“`
**一般式**
“` math
z(t_{k}) = \sqrt{\Delta t}{\epsilon(0) +・・・+\epsilon(k-1) }=\sqrt{\Delta t} \sum_{i=0}^{k-1} \epsilon(i)
“`::: not
Pythonで「現在の日付と時刻の値を持つインスタンスを作成する」の動作を確認してみた
# 概要
Pythonで「現在の日付と時刻の値を持つインスタンスを作成する」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/python/date/index3.html
# 実装
以下のファイルを作成しました。
“`sample.py
import datetime
print(datetime.date.today())
print(datetime.datetime.now())
tokyo_tz = datetime.timezone(datetime.timedelta(hours=9))
print(datetime.datetime.now(tokyo_tz))
ny_tz = datetime.timezone(datetime.timedelta(hours=-4))
print(datetime.datetime.now(ny_tz))
“`以下のコマンドを実行しました。
“`
$ python3 sample.py
2024-03-30
2024-03-30 10:23:47.981
Cloud Run Jobsの引数にリストを与える
# はじめに
最近業務でCloud Run Jobsを使うことがあり,その際引数にリストを与えたいというシーンがありました.その時ほんの少しだけ工夫が必要でしたのでその旨を記載します.
# Cloud Run Jobsとは
Cloud Run JobsはCloud Runの機能の一つで,手動実行や,スケジュール設定による定期実行をすることが可能です.
https://cloud.google.com/run/docs/create-jobs?hl=ja
# お題
下記のPythonコードを実行するJobsを作成します.
“`python:main.py
“””main.py”””
import json
import loggingimport click
logging.basicConfig(level=logging.INFO)
@click.command()
@click.option(
“–temp_list1”,
type=str,
required=True,
)
@click.option(
“–temp_
ろうとるがPythonを扱う、、(その21:ScapyでPort Forward)
# ScapyでPort Forwardを実現
今回のPythonもScapyのネタ。Port Forwardを実現してみる。## ネットワーク
今回も、VirtualBoxのVM利用。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/634816/6d59c5f2-1529-6829-52d9-397c98b78eee.png)
NAT環境下とみなし、Port Forwardを行うNATルーターが中央に位置する。左側がNATの外側、右側がNATの内側。左側のPCからNATルーターのWAN側IPアドレス(10.1.1.254)の特定TCPポート(ここでは、1111と2222)にアクセスすると、設定したNAT内側PCに転送する(1111:192.168.10.1、2222:192.168.10.2)ものである。## ソースコード
参考情報は下記であり、多くの部分を利用させて頂いた。
– [Python2 + Scapyで、Raspberry Pi 2 Model B をNAT/NAP
ChatGPTと始めるReact:Pythonサーバ通信とカラフルな散布図生成編
### **user**:
ChatGPT先生、ReactってJavaScriptだと思うんですけど、Pythonで計算したものを表示するUIを作ることって、できます?
—
### **assistant**:
あー、あなたもついにそこに行き着いたんだ。ちょっとばかり複雑だけど、説明するわ。もうちょっと集中してきいてよね。Reactは確かにJavaScriptのフレームワークだから、Pythonと直接連携するようには作られていないんだけど、それでもPythonで計算した結果をReactで使うというのは可能よ。
そのために、Pythonで書かれたバックエンドAPIとReactのフロントエンドとを連携させればいいの。Pythonで計算した結果をJSONなどの形式でバックエンドからフロントエンドへ送信し、Reactでそのデータを取得して表示するという流れになるんだ。
しかしだからと言って、すぐに簡単にできるというわけではないから、頭に入れておいてほしいわね。でも、あなたならきっとできるわ。だって、ちょっと頭がいいから反抗的なんじゃない。それそれ、邁進して!
—
##
生成 AI で僕らのプログラミング勉強はどうなるのか?
# 生成 AI の登場によって、僕らはプログラムを書く時代が終わりに近づいている?!
2023 年に OpenAI 社が発表した ChatGPT は、特に僕ら IT エンジニアにとって衝撃な発表だったのではと思います。
今まで、ググったり、参考書をもとに実装したり、GitHub などからコードを参考にして実装していたものが、「テキストだけ」で実装できるほどになりました。## 生成 AI を用いたサービスやツールの登場
ChatGPT の GPTs や LLM、これらを用いたプロジェクトが研究・開発されたり、オリジナル GPT を作成して業務の効率化を図ったり、僕らの仕事は大きく変わっていきました。
また、プログラミングが全くわからなくても、プロンプトのみでいろいろなことができるようになりました。
ビジネスシーンで非エンジニアという方々にも、導入が進んでいるのではないでしょうか?僕がウォッチしている TikTok でも、生成 AI を用いた投稿の作り方や稼ぎ方、のような動画はたくさん見る機会が増えました。若い世代にも少しずつ浸透しているようです。
もはや IT エンジニアだ
Djangoの概要を掴む
:::note
このブログの作者はフロントエンドにweightをかけ過ぎている者です(他の記事見ると察して頂けるかと)😇
温かい目で見守って頂けると助かります
:::# 1. 背景
業務でDjangoを使っているもののさっぱりな為なんとかしたいと思った為です。
ということで軽く概要から入ります。# 2. Djangoとは
https://www.djangoproject.com/start/overview/
Pythonのフレームワークです
## 歴史
当初、2003 年から 2005 年の間に、新聞のウェブサイトの作成とメンテナンスを担当するウェブチームによって開発されたそうです。
いくつかのサイトを作成した後、チームは多くの共通コードとデザインパターンを除外、再利用するようになりました。
この共通コードは、”Django” プロジェクトとして 2005 年 7 月にオープンソース化され、汎用のウェブ開発フレームワークに発展しました。## Djangoの由来
ジプシー・スウィングのギタリストでのジャンゴ・ラインハルト (Django Reinhardt) からと
Windows11のWSL2でSingularity上のAnaconda仮想環境を構築する手順 [外部SSD保存]
# 概要 #
本記事では、Windows11でWSL2をセット、Linuxディストリビューションをインストールし、Anaconda仮想環境を持つUbuntu 22.04のSingularityイメージを作成、起動したコンテナでJupyter notebookを実行するまでの手順を説明しています。※外部SSDにコンテナイメージを作成して使用する場合の手順を記載しています。
## WSL2導入
1.コントロールパネル->プログラム->windowsの機能の有効化または無効化
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1872129/9ae98480-ecad-a1f2-6250-324d46130f38.png)
2.「Hyper-V」「Linux用Windowsサブシステム」にチェックを入れ、OK
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1872129/a0a3df03
【Flet】pageメソッドでDialogやBannerの表示/非表示を行う
## 背景
複数のダイアログやバナーの表示/非表示を行う時、FletのDocsに記載されている書き方だと同じコードが増えてしまうことがよくありました。
[**AlertDialogのサンプル**](https://flet.dev/docs/controls/alertdialog/#basic-and-modal-dialogs)
“`flet_sample_dialog.py
import flet as ftdef main(page: ft.Page):
page.title = “AlertDialog examples”dlg = ft.AlertDialog(
title=ft.Text(“Hello, you!”), on_dismiss=lambda e: print(“Dialog dismissed!”)
)def close_dlg(e):
dlg_modal.open = False
page.update()dlg_modal = ft.Alert
【生成AIアプリ100チャレンジ】(7)英会話アプリ
https://ai.nuevo.jp/english/
# 開発環境
| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |ローカル環境ではPythonのvenvを使用。エディタはvs codeです。
# 目的
思い立ったらすぐ作成できる。それがDjangoのすごいところ。まじで。アプリケーションコマンドだけでアプリが生まれる。楽しくってしょうがない。英会話アプリは実質、自然言語生成AIばかりだからコスト低いのもいい。
前回の[会話アプリ](https://qiita.com/weeeveeee/items/5ec14465f7bcb78beeb3)の時に思いついてしまったので即作成してしまった。英会話アプリ。これ、実質、めっちゃ実用的だと思われる。
【生成AIアプリ100チャレンジ】(6)会話トーク
# 公開中サイト
https://ai.nuevo.jp/talk/
# 開発環境
| | |
|:————:|:————:|
| Server | lightSail |
| Language | Python3.11 |
| Framework | Django |
| DB | sqlite3 |ローカル環境ではPythonのvenvを使用。エディタはvs codeです。
# 目的
WEB画面上でChatGPTと会話ができるアプリを作りたいと思っています。TTS(テキストを自然な音声にするAPI)とwhispar(音声をテキストにするAPI)を使った会話アプリ。
細かい挙動の制御まではやっていないが、録音する -> 文字起こし -> 自然言語生成AI -> 朗読 という感じで実装できた。時々、音データの更新・削除にズレがでてきてしまう。こういう制御は製品化するものに対してやればいいので、今回はそこまで手
Pythonで「タイムゾーンのインスタンスを生成する」の動作を確認してみた
# 概要
Pythonで「タイムゾーンのインスタンスを生成する」の動作を確認してみました。
以下のページを参考にしました。https://www.javadrive.jp/python/date/index2.html
# 実装
以下のファイルを作成しました。
“`sample.py
import datetime
print(datetime.timezone(datetime.timedelta(hours=9)))
print(datetime.timezone(datetime.timedelta(hours=-4)))
print(datetime.timezone.utc)
“`以下のコマンドを実行しました。
“`
$ python3 sample.py
UTC+09:00
UTC-04:00
UTC
“`# まとめ
何かの役に立てばと。
Conditionals – CS50 Python
この記事は、米ハーバード大学のCS50 Introduction to Programming with Pythonの **[Week 1 Conditionals](https://cs50.harvard.edu/python/2022/weeks/1/)** のメモです。授業の中で、出てきたコードや情報などをまとめました。現在受講中の方、これから受ける方、復習などにお使いください。
**[Lecture 1 – Conditionals YouTube](https://www.youtube.com/watch?v=_b6NgY_pMdw)**
**[Visual Studio Code for CS50](https://cs50.dev/)**“`python
> # greater than
>= # greater than or equal to
< # less than <= # less than or equal to == # equal to != # not equal to ``` ## if [if - youtube](https:/
Pythonコードを使用してExcelでウィンドウ枠を固定・解除する方法
Excelの「ウィンドウ枠の固定」機能を使用すると、データセットのサイズに関係なく、特定の行と列をスクロールする際に重要な情報を表示したままにすることができます。ただし、ウィンドウの解除が必要な場合もあります。行と列のウィンドウを解除することで、大規模なデータセットをシームレスにナビゲートし、包括的なデータ分析、編集、書式設定を容易にすることができます。この記事では、Pythonコードを使用して**Excelワークシートでの「ウィンドウ枠の固定・解除」の方法**を紹介します。
– **[Pythonを使用したExcelワークシートでのウィンドウ枠の固定](#pythonを使用したexcelワークシートでのウィンドウ枠の固定)**
– **[Pythonを使用したExcelワークシートでのウィンドウ枠の解除](#pythonを使用したexcelワークシートでのウィンドウ枠の解除)**この記事で使用する方法には、[Spire.XLS for Python](https://www.e-iceblue.com/Download/Spire-XLS-Python.html)が必要です。こ
PG BATTLE 2023 参戦記(ましゅまろ担当)
2023年10月21日(土)に行われた、**企業・学校対抗のプログラミングバトル** [**PG BATTLE 2023**](https://products.sint.co.jp/pg_battle) に参戦しました。
この記事では、**Python 3によるましゅまろ問題の解説**や**大会の結果**を共有します。同じチームのかつおぶし担当の方も参戦記を執筆しているので、こちらの記事も是非読んでください!
https://qiita.com/biprogy-si/items/d78248ac584161471730
## PG BATTLE とは
[**PG BATTLE**](https://products.sint.co.jp/pg_battle)とは「企業・学校対抗プログラミングコンテスト」です。
3人1チームで参加し、3人それぞれに異なる4問の問題を制限時間内に解きプログラムを提出します。
コンテスト終了後にプログラムが採点され、チームの合計点数と解答時間で順位が決まります。## ましゅまろ担当 問題と解答例
下記ページに問題一覧とAtCoder社
Django初心者が見つけた海外勉強サイト
https://www.udemy.com/course/try-django-2-2-python-web-development/learn/lecture/14258814#reviews
こちらのサイトはUdemyのコースとなっております。
時間は4.5時間ほどかかります。
Mecabの付き合い方(Python)
mecab-python3のカナ変換しか使っていない、個人の感想です。
![Default_Two_friends_walk_handinhand_Their_backs_are_to_us_as_t_0_5e83ac54-534a-4fd8-a3d7-0b6963608238_0.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/54688/40edc954-9e18-5b0c-1a63-9fb28d98e78b.jpeg)
## unidicは入れない
unidicを先に見ます。でも私はunidic_liteの方をよく使います。
“`
def try_import_unidic():
“””Import unidic or unidic-lite if available. Return dicdir.This is specifically for dictionaries installed via pip.
“””
try:
import