- 1. [Python] Instagramの自動フォローツールの作成
- 2. WebGLを用いた赤色三角形描画の計算プロセスに関する考察 という論文風のブログ記事。
- 3. FastAPI/SQLModelに対応した管理画面「SQLAdmin」でユーザを管理
- 4. Thonny をインストールして、ラズパイPicoをプログラミング
- 5. FastApiのよく使うリクエスト方法 例3選
- 6. How to install fluxgym for building Flux LoRA
- 7. wslでmanim その14
- 8. wslでmanim その13
- 9. wslでmanim その12
- 10. wslでmanim その11
- 11. wslでmanim その10
- 12. 音声文字起こしと応答生成ボットの作成
- 13. OpenAI APIを使用し画像を送信する
- 14. AWS Lambda(Python Runtime)でMicrosoft SQL Serverとの接続に必要なカスタムレイヤーについて
- 15. 【Python】スペース区切りで入力された値を別の変数に入れる
- 16. paizaラーニング問題集「二次元区間和」を解いてみた
- 17. 【Python】スペース区切りで入力された数字を別々にして配列(list)に入れる
- 18. Prisma スキーマの構造を Python からいじって遊ぶ
- 19. Python (仮想)環境構築まとめ
- 20. さくらのレンタルサーバに最新のPythonをインストールする苦行
[Python] Instagramの自動フォローツールの作成
皆さんお久しぶりです。ちょっと色々立て込んでて長い間更新できていませんでした。それで、今回はinstagramの自動フォロー、フォロー解除ツールを作っていこうと思います。まあ生成AIフル活用しました笑
コードのベースはchatGPTです。本当便利ですよね何でも作れるって。まあってことでやっていきます!
前提として実行環境を出します。– ### 実行環境
– OS: Ubuntu 22.04LTS
python-library: seleniumとりまコード出します。
“`ruby:Python
from time import sleep
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.common.action_
WebGLを用いた赤色三角形描画の計算プロセスに関する考察 という論文風のブログ記事。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3838874/bf0335f0-b9a2-65af-101b-da091715a4ca.png)
### WebGLを用いた赤色三角形描画の計算プロセスに関する考察
1. はじめに
本稿では、WebGLを用いて二次元空間における赤色の三角形を描画するプロセスについて論じる。WebGLは、ブラウザ上で動作するOpenGL ESの仕様を基にしたAPIであり、HTML5に統合されている。本研究は、WebGLを通じたグラフィックス処理の基礎的な実装を通して、その計算プロセスとレンダリング手法の理解を深めることを目的とする。2. 初期化プロセス
2.1 WebGLコンテキストの取得
描画処理は、WebGLコンテキストの初期化から開始される。本研究では、HTML内の
FastAPI/SQLModelに対応した管理画面「SQLAdmin」でユーザを管理
# はじめに
[FastAPI](https://fastapi.tiangolo.com/)と[SQLModel](https://sqlmodel.tiangolo.com/)を使用するプロジェクトにおいて、
ユーザを管理する管理画面を[SQLAlchemy Admin(SQLAdmin)](https://aminalaee.dev/sqladmin/)で構築する方法をまとめていきます。https://github.com/aminalaee/sqladmin
:::note info
類似ライブラリに[FastAPI Admin](https://fastapi-admin-docs.long2ice.io/)がありますが、SQLModel をサポートしていません([#69](https://github.com/fastapi-admin/fastapi-admin/issues/69))。
:::なぜこの記事を書こうと思ったかというと、SQLAdmin でパスワードのハッシュ値を扱う方法がわからなかったためです。
公式のクックブック「[Working with
Thonny をインストールして、ラズパイPicoをプログラミング
Raspberry Pi Pico のプログラミングにお勧めの、Thonny のインストールと、ラズパイPicoの準備について解説したいと思います。
## Thonny のインストール
Thonny は、Windows、Mac、Linuxにインストールすることができます。
#### Thonny 公式ページを開きます
https://thonny.org/
#### exeファイルをダウンロードします
Windows、Mac、Linux のいずれかにカーソルを合わせ、「recomennded for you(あなたにお勧め)」のリンクをクリックします
![スクリーンショット 2024-09-12 124015.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3665435/28e2e615-622c-1ead-79f4-dfc44d5d25e5.png)
#### ダウンロードした exe ファイルを実行します
[Next] –> [Next] –> [Next] –> [I
FastApiのよく使うリクエスト方法 例3選
# ①パスパラメータ
/categories/1
id=1となる“`
@router.get(“/{id}”, response_model=schemas.Category)
async def read_category_by_id(
*,
db: Session = Depends(get_db),
current_user: models.User = Depends(get_current_active_user),
id: int,
) -> Any:
“`JSで送る時
“`
instance.get(`/categories/${id}`, authHeaders(token));
“`# ②スキーマ(Schemas) – リクエスト
Content-Type: application/json
構造で送る(受け取る)“`
@router.post(“/”, response_model=schemas.Category)
async def create_category(
*,
db: Ses
How to install fluxgym for building Flux LoRA
私は従前、LoRA自作には余り関心がなく、昨年上半期に一度業務内作業の一環として自作した程度(※しかも実用に耐える精度にならず)でしたが、Flux1の描画能力や、他人様が作成したLoRAの表現力などを見て、そろそろ本格的にLoRA自作に踏み込んでみるか…と考えるに至りました。
ただ、RTX4070 12GBクラスのGPUでそれが可能なのか…という根本的な疑問もあり、しばし情勢を観察していましたが、さすがに世界は広いと言うべきか、Flux1そのものの需要の高さと言うべきか、想像以上にあっさりと12GB VRAMクラスのGPUでも完走できそうなLoRA作成プログラムが登場しましたので、早速インストールしました。
今現在、この原稿を書きつつ稼働中なので、使用方法については後述するとして、とりあえずインフラ周りのインストール方法について解説します。
…というか、わざわざ解説する必要も感じない位「超絶簡単(=GitHubの解説を読んで下さい、以上…で終わる話)」なのですが、一応書いておきます。
当初は、日本人にもおなじみKohya SS氏の鉄板プログラム「https://github.c
wslでmanim その14
# 概要
wslでmanimやってみた。
練習問題やってみた。# 練習問題
3dグラフを書け。# 成果物
![Test_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/6f0d5a93-1d07-c56c-59e4-44765472cc53.gif)
# サンプルコード
“`
from manim import *
class ThreeDSurface(Surface):
def __init__(self, ** kwargs):
kwargs = {
“u_range”: [-1.5, 1.5],
“v_range”: [-1.5, 1.5],
“checkerboard_colors”: [GREEN, BLUE],
“fill_opacity”: 0.5
}
Surface.__init__(self, self.func, ** kwargs)
def func(self, x, y):
wslでmanim その13
# 概要
wslでmanimやってみた。
練習問題やってみた。# 練習問題
3dグラフを書け。# 成果物
![test_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/8b4b91db-d624-ccca-dcaf-baafbecd7318.gif)
# サンプルコード
“`
from manim import *
class test(ThreeDScene):
def construct(self):
self.set_camera_orientation(phi = 75 * DEGREES, theta = 30 * DEGREES)
axes = ThreeDAxes()
self.add(axes)
w = 1
surface_01 = Surface(lambda u, v: v * complex_to_R3(np.exp(1j * w * u)), u_range = [0, TAU], v_ran
wslでmanim その12
# 概要
wslでmanimやってみた。
練習問題やってみた。# 練習問題
3dグラフを書け。# 成果物
![test_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/00923764-d764-9169-3851-7361e1e67b6e.gif)
# サンプルコード
“`
from manim import *
class dSurface(Surface):
def __init__(self, **kwargs):
kwargs = {
“u_range”: [-1.5, 1.5],
“v_range”: [-1.5, 1.5],
“checkerboard_colors”: [GREEN, BLUE],
“fill_opacity”: 0.5
}
Surface.__init__(self, self.func, **kwargs)
def func(self, x, y):
retur
wslでmanim その11
# 概要
wslでmanimやってみた。
練習問題やってみた。# 練習問題
3dグラフを書け。# 成果物
![test_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/8817ca1c-adc7-5b5c-4147-913fe6fdeff7.gif)
# サンプルコード
“`
from manim import *
class DSurface(Surface):
def __init__(self, **kwargs):
kwargs = {
“u_range”: [-1.5, 1.5],
“v_range”: [-1.5, 1.5],
“checkerboard_colors”: [GREEN, BLUE],
“fill_opacity”: 0.5
}
Surface.__init__(self, self.func, **kwargs)
def func(self, x, y):
retur
wslでmanim その10
# 概要
wslでmanimやってみた。
練習問題やってみた。# 練習問題
3dグラフを書け。# 成果物
![test_ManimCE_v0.18.1.gif](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/18104/fb0f011b-bfe7-de28-a97b-0e6081176514.gif)
# サンプルコード
“`
from manim import *
class test(ThreeDScene):
def construct(self):
sphere = Sphere()
cube = Cube()
prism = Prism()
cylinder = Surface(lambda u, v: np.array([np.cos(TAU * v), np.sin(TAU * v), 1.0 * (1 – u)]), resolution = (6, 32))
axes = ThreeDAxes()
self.set_camera_orienta
音声文字起こしと応答生成ボットの作成
# イントロ
こんにちは!
今回は、音声を文字起こしし、GPT-3.5を使用して応答を生成し、その応答を音声に変換するPythonベースのボットの作成方法をご紹介します。
このボットは、インタラクティブな音声ベースのアプリケーションを作成するのに役立ちます。# Github
[音声文字起こしと音声対話ボット](https://github.com/yayoi-exe/audio-chat-bot)# 機能
このボットには以下の機能があります:
– マイクから音声入力を記録
– OpenAIのWhisperモデルを使用して音声をテキストに変換
– GPT-3.5を使用してテキスト応答を生成
– 生成されたテキストを音声に変換
– 変換した音声を再生# 必要なもの
– Python 3.9.19
– OpenAI APIキー# インストール手順
## 1. リポジトリのクローン
まず、リポジトリをクローンします。
“`bash
git clone https://github.com/yayoi-exe/audio-chat-bot.git
“`フォル
OpenAI APIを使用し画像を送信する
OpenAI APIを使用して、画像の送信方法を紹介します。
## 実施環境
| 環境 | バージョン |
|:-:|:-:|
| OS | Windows11 |
| Python| 3.11.0 |
| OpenAI Python API library| 1.43.0 |## 事前準備
#### APIキーの準備
OpenAIの公式サイトからAPIキーを取得してください。https://openai.com/
—
#### OpenAI Python API libraryインストール
“`
pip install openai
“`
https://pypi.org/project/openai/## Web上の画像の送信
Web上にアップロードされている画像の送信方法です。「IMG_URL」に画像のURLを記載してください。また、「YOUR_API_KEY」に事前準備で取得したAPIキーを記載してください。
“` imgOpenAi.py
from openai import OpenAIclient = OpenAI(
#
AWS Lambda(Python Runtime)でMicrosoft SQL Serverとの接続に必要なカスタムレイヤーについて
### はじめに
AWS Lambda(Python Runtime)を使用して、Amazon RDS Microsoft SQLに接続するには、ODBCドライバーとpyodbcモジュールを含むカスタムレイヤーを用意する必要があります。Lambda環境でODBCドライバーを使用するのは少し複雑ですが、適切に設定すれば非常に強力な機能を提供します。
**なぜカスタムレイヤーが必要なのか?**
AWS LambdaのRuntimeには基本的なライブラリやモジュールしか含まれていないため、特定のライブラリやモジュールを使用する場合はカスタムレイヤーが必要です。例えば、Pyodbcモジュールや特定のバージョンのPythonライブラリはLambdaの標準環境には含まれておらず、これらを利用するためにカスタムレイヤーが必要となります。
**カスタムレイヤーのメリット**:
– **再利用性**: 一度作成したレイヤーは、複数のLambda関数で再利用できます。
– **依存関係の管理**: ドライバーやライブラリの依存関係を簡単に管理でき、バージョンアップや修正も容易です。
– **デプ
【Python】スペース区切りで入力された値を別の変数に入れる
文字列の場合
—
※変数の数は、入力される文字列と同じ数でないと動きません
“`Python
#文字の場合
a,b = map(str, input().split())
print(a)
print(b)
“`“`
入力
banana chocolate
“`
aの変数にはbananaが、bの変数にはchocolateが入っています
“`
出力結果
banana #a
chocolate #b
“`
整数の場合
—“`Python
#整数の場合
a,b = map(int, input().split())
print(a)
print(b)
“`“`
入力
123 4
“`
aの変数には123が、bの変数には4が入っています
“`
出力結果
123 #a
4 #b
“`int(整数)か、str(文字列)を使い分けて、入力する値のデータ型を変えています。
使用例
—
“`Python
hoge1,hoge2,hoge3,hoge4 = map(int, input().split())
print(h
paizaラーニング問題集「二次元区間和」を解いてみた
▼感想:
区間和の計算方法のやりかたを踏まえて、本問を解くことができました。
縦方向の変数(y,H,ruisekiwa_tate,j,a,c)と
横方向の変数(x,W,ruisekiwa_yoko,i,b,d)を
しっかり定め、混同しないように気を付けました。二次元区間和が、横長か縦長か、に応じて処理を分けました。
▼コード:
########## 処理0(準備) インプット,リスト定義など ###########
H,W,N = map(int,input().split())
A = [[0 for i in range(W)] for j in range(H)]
# ruisekiwa_yoko,ruisekiwa_tate: 横方向,縦方向の累積和格納用リスト
ruisekiwa_yoko = [[0 for i in range(W)] for j in range(H)]
ruisekiwa_tate = [[0 for i in range(W)] for j in range(H)]####
【Python】スペース区切りで入力された数字を別々にして配列(list)に入れる
Pythonでよく使うコードです。
“`Python
hoge = list(map(int, input().split()))
print(hoge)
“`実行例
“`
入力
1 2 3 456 78 9 10
“`“`
出力
[1, 2, 3, 456, 78, 9, 10]
“`
Prisma スキーマの構造を Python からいじって遊ぶ
Prisma のスキーマファイルの構造をコネコネいじって遊びたいときってありますね? ない? そう…
Prisma スキーマを parse した AST の構造は **DMMF** (Data Model Meta Format)[^dmmf] というらしく、TypeScript Client なんかだとかなり簡単に取得することができるらしい。
[^dmmf]: https://github.com/prisma/prisma/blob/main/ARCHITECTURE.md#the-dmmf-or-data-model-meta-format
ただデータをコネコネいじって遊びたいときは Python のほうがやりやすい (主観) ので、Python で遊ぶ用に取得できないかと思って試していたらできたので、まとめておく。
## DMMF を Pickle として dump する
別に DMMF を JSON に dump してもいいんだけど、Prisma Client Python [^python] が提供する Pydantic の型にハメたほうが扱いやすい。[^p
Python (仮想)環境構築まとめ
## pip
pipによるライブラリのインストール
“`bash
python -m pip install –upgrade pip #pipのアップデート
python -m pip install numpy
python -m pip install “matplotlib<3.9" python -m pip install matplotlib==3.8.4 #バージョン指定 ``` 環境設定の書き出し ```bash python -m pip freeze > requirements.txt
“`読み込み
“`bash
python -m pip install -r requirements.txt
“`## venv
特定のディレクトリの中にライブラリ等の仮想環境設定が格納される。例えば仮想環境を適用したいプロジェクト直下の.venvディレクトリにそれを作成する。
仮想環境の構築
“`bash
cd project
python -m venv .venv
“`仮想環境のアクティベート/ディアクティベート
“`ba
さくらのレンタルサーバに最新のPythonをインストールする苦行
コストの問題など、レンタルサーバでPythnを使いたい場合が多くあります。その場合には、かなりの苦行が必要ですが下記の手順で操作します。
ポイントは下記の通り:
– SSH接続が必要なので「スタンダードプラン」以上が必要
– pyenvを使って最新版をインストール
– OpenSSLを最新版にアップデートする必要がある### レンタルサーバとの接続
スタンダードプラン以上を契約し、以下のコマンドでサクラに接続します。
“`sh
ssh (初期ドメイン)@(初期ドメイン).sakura.ne.jp
“`### 設定ファイルの変更
続いて、シェルをBashに切り替えます。
“`sh
chsh -s /usr/local/bin/bash
“`コマンドを実行したら、SSHコマンドでサーバーに接続しなおします。
その後、下記のコマンドを実行して、各種設定を行います。“`
# ~/.bash_profileを作成する
echo ‘if [ -f ~/.bashrc ]; then’ >> ~/.bash_profile
echo ‘ . ~/.bashrc