Python関連のことを調べてみた

Python関連のことを調べてみた

tkapp

“`py

import tkinter as tk
import tkinter.ttk as ttk
from mp4_downloader import networkmovie
from download_youtube_to_mp3 import networkmusic
from tkinter import filedialog
import subprocess
import os

def down_load():
url = txt.get()
title = txt2.get()
if len(url) > 1 :
if len(title) > 1:
dl = networkmovie(url, title)
dl.download()
else:
dl = networkmovie(url, ‘av_’)
dl.download()
else:
print(‘URL is not se

元記事を表示

Dify APIを使ったワークフロー実行するPythonスクリプト

Pythonプログラムから、自分のローカルのDify APIを使ってワークフローを実行するスクリプトが動作してくれたので、メモをしておきます。

“`python
import requests
import json
import argparse

API_KEY = “app-XXXXXXXXXXXXXue” # DifyのAPIキーを入れてください
BASE_URL = “http://localhost/v1″

def run_workflow(inputs, response_mode, user):
url = f”{BASE_URL}/workflows/run”
headers = {
“Authorization”: f”Bearer {API_KEY}”,
“Content-Type”: “application/json”
}
data = {
“inputs”: {“input_text”: inputs[“input_text”]},
“response_m

元記事を表示

EC2のWindowsでPythonが認識されない

# はじめに
こんにちは、ユーゴです。MacでPythonをexe化したく、Windowsの環境を用意するために、AWSのEC2でWindowsのサーバーを立てて、そこから色々とやっていました。その時に、Pythonをダウンロードしてもうまく認識されなかったので、解決策を紹介します。

# 環境
EC2側の環境は、以下の通りです。
|項目|詳細|
|:-:|:-:|
|インスタンスタイプ|t2.micro|
|プロセッサ|Intel(R) Xeon(R)|
|システムタイプ|64-bit operating system, x64-based processor|
|エディション|Windows Serer 2022 Datacenter|

# 課題
Pythonをインストールしたが、pythonコマンドが認識されない。

“`bash
python -V
“`

“`
‘python’ is not recognized as an internal or external command,
operable program or batch file.
“`

# 解決策

元記事を表示

Slackで質問に自動回答!ChatGPTとLangChainで社内FAQボットを作ってみた Part3

# 概要
本記事では、Slack BoltとChatGPT、LangChainを用いて社内FAQボットを開発する過程を、Partに分けて解説します。
Part1では独自データを回答する。Part2ではSlack Bolt for Pythonを使ってSlack Botの実装について解説しました。今回のPart3では、Dockerを使ったLambda環境でのデバッグとPart2でできていないslackから独自データを回答するところまでを解説します。

## Dockerでデバッグ
Part2までで作ったコードは最終的にはAWS Lambda上で動かしたいのですが、ここで2つの課題をクリアする為に、Dockerを使います。
1. AWS Lambdaはアップロードしたデプロイパッケージの解凍後のサイズが250MBを超えるとエラーとなります。複数のライブラリを入れるとすぐに上限を超えてしまうため、デプロイ方法を考える必要があります。コンテナイメージは、この制限を回避することができます。(その他にもやり方はいくつかありますが、今回はこれを選択します。)
2. 開発環境では動いたのに本番環境では

元記事を表示

あるリクエストがGoogle Chatから送られてきたかどうかを検証する

# リクエストがGoogle Chatから送られてきているのかを検証したい
Google Chatにbotをデプロイする場合、botのエンドポイントを設定する必要があります。HTTPエンドポイントを利用する場合、URLを知っている人は誰でもbotを利用できる可能性があります。なので、リクエストがGoogle Chatから送られてきているかを検証し、不正な利用ができないようにする必要があります。

# Bearer Tokenを使って検証を行う
Google Chatからの通知はheaderにBearer Tokenがついているため、このトークンを使って検証を行います。いかに検証を行うサンプルコードを示します。

“`verify.py
from flask import Request
from google.auth.transport import requests
from google.oauth2 import id_token

# 以下2つは定数なので固定
PUBLIC_CERT_URL_PREFIX = ‘https://www.googleapis.com/serv

元記事を表示

Python文法まとめ【for】

# はじめに
Pythonの基礎的なことをまとめています。
Google Colabで実行できます。
[Colabの使い方(Python.jp)](https://www.python.jp/train/experience/colab.html “Python.jp 入門講座”)

# 繰り返し処理
forを利用した繰り返し処理です。
~~~Python:サンプル
for i in range(5):
print(‘★’, end=”)
~~~
~~~:実行結果
★★★★★
~~~
`★`マークが5回表示されました。
※`end=”`は、改行をしないための記述です。
~~~
for 変数 in 範囲もしくはデータのまとまり:
処理
~~~
が基本形です。

#### ifと組み合わせる
~~~Python:応用
for i in range(5):
if i == 3:
print(‘☆’, end=”)
else:
print(‘★’, end=”)
~~~
実行結果を見る前に、どういう表示になるか予想してみてください。

元記事を表示

【初心者向け】Stripeでクレカ登録・決済・削除を実装する【Python, Go, Javascript】

こんにちは、[わいけい](https://twitter.com/yk_llm_gpt)です。
今回の記事ではStripeを使ってクレジットカード決済を実装します。

## 前置き
開発規模の大小を問わず、**実装したプロダクトで収益を得るにはユーザーからお金を払ってもらう必要があります。**
しかし、決済の仕組みを自分たちで実装するのは色々な困難が伴います。

キャッシュレス決済といえばクレジットカードですが、クレカ決済の実装には例えば下記のような課題があります。

– 実装ミスなどで、ユーザーのクレカ情報が流出すると大事故になる
– PCI DSSというセキュリティ要件を守り、決済ブランドの審査に通過するには莫大なコストがかかる

結論として、個人や小規模な企業がクレカ決済を独自実装するのはあまり現実的ではないと私は思っています。
こういった問題のソリューションとなるのがStripeです。

私のSNSアカウント等です。
今後もPython・LLM・Go・Web開発などのトピックについて発信していくのでフォローしていただけると喜びます。

X: [わいけい](https:

元記事を表示

ウィンドウ指定で画面キャプチャを連続で取り続ける

# はじめに

## 画面をキャプチャしたいモチベーション
生成AIが猛威を奮っている中、口だけでなく手を出してほしいなぁと思った次第でございます。
そのためには、今の画面の内容を理解してもらわないといけない。

Macのデスクトップ版では画面を監視して口出しする機能がリリースされたようですがWindowsはまだちょっと先だし、できたとしても、なんでもアドバイスできる?いくらChatGPTって言っても、学んでないことだって世の中にはたくさんあるでしょう。

## 言ってしまえばマイクラです

抽象的なことを書いても伝わらないと思いますので、具体をカミングアウトすると、**ChatGPTにマイクラをやってほしい**んですよね!

今は、マイクラの画面をChatGPTに共有して「あのクモスポナーから糸生成器を作りたい」って言っても、具体的にどこをどう掘るとかは教えてくれない。ましてや実行はしてくれない。(結構、事細かに教えてはくれる)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7226

元記事を表示

googleのtimesfmのモデルで日経平均を予測してみた

# 経緯説明
最近(2024/05/17時点) googleやopenAIなど各社が色々なAIを発表して、色々面白いもの発表しているところほとんどLLM、個人的にLLMはそこまでやる気がないけど、別の面白いモデルがあればいいなぁと思ってhugging face に潜入捜査したら、なんとmodels のランキング1がgoogleのtimesfmのモデルだ!metaの有名なLLM(Llama3)を超えている!気になって見たら時系列のモデルだそうです。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3506235/998f90eb-f692-2d1e-584e-1544a95282b1.png)

公式資料
googleのresearch リンク:https://research.google/blog/a-decoder-only-foundation-model-for-time-series-forecasting/
github リンク: https://github.com/goo

元記事を表示

NDRメールマスク化

“`python
import email
from email import policy
from email.parser import BytesParser
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText

# NDRメールのファイルパス
ndr_email_path = ‘path/to/ndr_email.eml’

def mask_message_body(ndr_email_path):
# メッセージをパース
with open(ndr_email_path, ‘rb’) as f:
msg = BytesParser(policy=policy.default).parse(f)

if msg.get_content_type() != ‘multipart/report’:
raise ValueError(‘This is not a multipart/report em

元記事を表示

変数の中の値ってどんな時に変わったりしますの?

# はじめに

プログラミング言語はどれも「変数」というもので何かの値を格納して色々利用しますね。

コードを書いているうちによく考えていることがあります。「ある変数の値ってコードの中でどこからわかるの?」又は「予想外なところで変わったりしないよね?」って。

何かの変数に値を与える時に普段はこのように`=`を使うことが多いですね。(他にも`<-`を使う少数派の言語もありますが、私はまだ使ったことない) ```javascript a = 129.3; ``` この文が出たら確実に変数の値が決められるでしょう。たとえ既に定義された変数でもここで書き換えられますね。だから変数の値はこの部分を見てわかるのです。 しかし実際にそう簡単にはいかないですね。それ以外も変数が変わる場面はいくらでもあるから。 ということで今回はこれについて纏めてこの記事を書くことにしました。 概念としては色んな言語で共通のはずなので、どの言語を使っている人でも読めるような内容にしようとしていますが、ここでは例として主に私が最近関わっている5つの言語を使います。それはRuby、Python、JavaScrip

元記事を表示

二値分類そのままやるべからず(関数作った)

二値分類は基本的に0.5を境に0.5以上だと陽性、未満だと陰性とみなすことが多いですが、必ずしもそれが正しいとは言い切れません。
というのも正解率がどれだけ高くても再現率と適合率のバランスが悪かったりするとダメですし、元のデータの偏りも考慮しないといけません。
(例えばですが陽性90個と陰性10個のデータがあって全部陽性と診断しても正解率単体では90%でも陰性に着目すると評価は悲惨(陰性反応的中率0%で陰性再現率0%)なんですよ)
そこで最適なしきい値を考察する関数を作ってみました。
# 関数
“`Python3
from sklearn.metrics import classification_report
import numpy as np
import matplotlib.pyplot as plt
def optimal_threshold(y, pred, n=”0.0″, p=”1.0″):
tsd = np.linspace(0.1, 0.9, 100)
accs = []
rec0 = []
rec1 = []
pcs0

元記事を表示

Understand APIとPlantUMLを組み合わせてシーケンス図を生成する方法

ソフトウェア開発において、シーケンス図はプロジェクトの構造と動作を理解するのに非常に役立ちます。SciTools Understandは強力な静的コード解析ツールで、そのAPIを活用してコードから直接関数呼び出し情報を抽出し、それをPlantUML形式でシーケンス図に変換することができます。このブログでは、Understand APIとPlantUMLを組み合わせたシーケンス図の生成方法をステップバイステップで説明します。

### ステップ1: 必要なツールの準備

1. **Understandのインストール**: まず、SciToolsのウェブサイトからUnderstandをダウンロードし、インストールします。
2. **PlantUMLのセットアップ**: PlantUMLを使用するにはJavaが必要です。Javaがインストールされていることを確認し、PlantUMLの実行可能ファイルをダウンロードします。

### ステップ2: Understand APIで関数呼び出しデータの取得

Understandのデータベースからプロジェクトの関数呼び出し情報を取得するためのPyt

元記事を表示

Tkinterで閉じるとメインウィンドウに戻るサブウィンドウを作る

## はじめに
Tkinterで、子ウィンドウを開いた後に別アプリを開いてから子ウィンドウを閉じると、親ウィンドウへ戻らず直前に開いたアプリのウィンドウへフォーカスが行ってしまう。メインウィンドウどこ行った?

てなわけで、子ウィンドウを閉じたら親ウィンドウへ戻るようにしたい。

## 考え方
ウィンドウが閉じられたら、親ウィンドウにフォーカスをセットする。

### ポイント
実際に子ウィンドウが閉じられる前に親ウィンドウへフォーカスをセットし、その後に子ウィンドウを閉じる。

## 実際のコード
“`Python
import tkinter as tk
from tkinter import ttk

class View(ttk.Frame):
def __init__(self, master, app):
super().__init__(master)
self.app = app

self.label = ttk.Label(self, text=’これがメインウィンドウ’)
self.bt

元記事を表示

Alembicで現在適用されている最新のMigrationを確認する方法

## メモ
Migrationが現在適用されているのは、 `alembic history`結果の`(head)`がある部分だと勘違いしていた

“`Shell
➜ poetry run alembic history
6c52ef9fa20e -> 6d7e21f4d179 (head), add type to users
e7922bb77adc -> 6c52ef9fa20e, drop index
4649a7485736 -> e7922bb77adc, creator and sendor nullable
394800e0fa0e -> 4649a7485736, Add ai and anonymous user
3604267b7044 -> 394800e0fa0e, Increase message text size
c4d28179c9f3 -> 3604267b7044, add default ts to messages
b42d3974bfbf -> c4d28179c9f3, apply SQLAlchemy 2.0
e0522be70879 –

元記事を表示

VSCodeでのPython開発環境構築:仮想環境、型チェック、リンター、フォーマッター、pre-commitを設定する

## はじめに
この記事では、Pythonの依存関係管理ツールであるPoetryを使ったプロジェクトの構築から、Jupyter Notebookの設定、型チェック、リンター及びフォーマッター、pre-commit 設定の流れを紹介します。

## 流れ

1. Poetryのインストールと構築
2. Jupyterのインストールと実行
3. Pyrightの型チェックを有効にする
4. Ruffの設定
5. pre-commitの設定

## Poetryとは

Poetryは、Pythonのパッケージ管理,依存関係解決を扱うツールです。(Node.jsでいうnpm)
さらにパッケージの公開なども行える高機能なツールです。
Poetryは仮想環境(venv)を作成して各ライブラリをインストールするため、プロジェクトごとに使用するライブラリを分けられます。

pipとvenvでも同じようなことができますが、requirements.txtへの追加忘れなどが発生する可能性があります。

またPoetryと同じようなツールとしてPipenvがあります。
Pipenvも仮想環境と依存

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その81 AI が手番を担当した場合のリプレイ機能とGUIの処理の分離

# 目次と前回の記事

https://qiita.com/ysgeso/items/2381dd4e3283cbed49a0

https://qiita.com/ysgeso/items/b4c12b5757cdcdd20648

## これまでに作成したモジュール

以下のリンクから、これまでに作成したモジュールを見ることができます。

https://github.com/ysgeso/marubatsu/blob/master/081/marubatsu.py

https://github.com/ysgeso/marubatsu/blob/master/081/ai.py

https://github.com/ysgeso/marubatsu/blob/master/081/util.py

## ルールベースの AI の一覧

ルールベースの AI の一覧については、下記の記事を参照して下さい。

https://qiita.com/ysgeso/items/10d1d01192c014173e4b

# AI が手番を担当した場合のリプレイ機能の実装

前回の記事で

元記事を表示

Flask runが実行できない(アプリが起動しない)

## 本日のお悩み

flaskアプリを作成し`flask run`を実行しても起動しない
以下のエラーが発生
“`rb
> flask run
Error: Could not locate a Flask application. You did not provide the “FLASK_APP” environment variable, and a “wsgi.py” or “app.py” module was not found in the current directory.
# エラーが発生しました。Flask アプリケーションが見つかりませんでした。環境変数 “FLASK_APP “が指定されておらず、カレントディレクトリに “wsgi.py “または “app.py “モジュールが見つかりませんでした。
“`

実行するアプリを認識できていないため起動できない模様

## 本日の処方箋

FLASK_APPという環境変数にアプリケーション名を設定する
(ただしapp.pyかwsgi.pyならFLASK_APPが設定されていなくても実行される。)

###

元記事を表示

Fly.ioにFastAPI + PostgreSQLの環境をデプロイしてみた

# はじめに
以下構成のバックエンド環境をFly.ioに初めてデプロイしてみたので、その時の手順を共有します。
– FastAPI(Dockerコンテナ)
– SQLAlchemy(ORM)
– Psycopg(PostgreSQL用のデータベースアダプター)
– Alembic(データベースのMigrationツール)
– Postgresql

特に、SQLAlchemy+psycopgを使ってFly.ioのPostgresqlに接続する場合、スムーズにいかなかったのでそのあたりのナレッジも残しておこうと思います。

# 対象読者
– Fly.ioにFastAPI + Postgresqlの環境をデプロイしたい方
– Fly.ioへのデプロイの流れや使い方をざっくり知りたい方

# 本記事の前提
## 開発環境
– MacOS 14.4.1
– Docker Desktop for Mac

## デプロイ対象のFastAPIとPostgresqlのコンテナ
– FastAPIのDockerイメージはDockerfileから作成
“`dockerfile:

元記事を表示

連関(association)

## 連関(association)
・ カテゴリ変数間の相関関係
・ 分割表(contingency table)を用いて計算する
・分割表内の数字を観測度数(observed frequency)という

観測度数は実際のデータで得られた値であり、例えば、あるアンケート調査で100人に
「データサイエンティストを目指す人は統計学を学習しているか」を調査したところ、以下のような分割表になったとしましょう。
![分割表.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3780659/b42559c2-12bc-a65e-62d7-c8a641b1e9f6.png)

「データサイエンティストを目指している」かつ「統計学を勉強している」が25人
「データサイエンティストを目指していない」かつ「統計学を勉強していない」が55人
になったとするとこれは何かしらの相関関係があるといえそうですよね。このとき、連関があるといったりします。

## 期待度数(expected frequencies)
・ 連関がないと

元記事を表示

OTHERカテゴリの最新記事