Python関連のことを調べてみた2023年11月06日

Python関連のことを調べてみた2023年11月06日

インジェクション検証

#chat = “インジェクション”

元記事を表示

ChatGPTとPythonで学ぶ HDBSCAN クラスタリング

みなさんこんにちは。今日も引き続きChatGPT先生を講師にお迎えして、「ChatGPTとPythonで学ぶ HDBSCAN クラスタリング」というテーマで雑談したいと思います。それではChatGPT先生、よろしくお願いします。

### **assistant**:

もちろんです、よろしくお願いします。今日はHDBSCANクラスタリングについてお話します。

HDBSCANは、高密度で始まり低密度で終わる(DBSCAN)という意味で名付けられた、クラスタリングの一種です。DBSCANに比べ、HDBSCANは非常に柔軟なクラスタリングアルゴリズムです。

DBSCANは、指定された範囲内の点の最小数と最大数を元にクラスタを形成します。これに対して、HDBSCANは「最小クラスタサイズ」という唯一のパラメータを持つだけで、それ以外は全てデータから自動的に推定されます。

Pythonでは、HDBSCANはhdbscanライブラリで使用できます。

まず、このライブラリをインストールします:

“`python
pip install hdbscan
“`

次に、基本

元記事を表示

WEBスクレイピング

Pythonで東京都にあるカーディーラーの某WEBサイトをスクレイピング。
865店舗の店舗名と住所をスクレイピングしてcsvファイルに保存。
生成したcsvファイルの活用編は次回!

※スクレイピングが禁止されているサイトもあるので利用規約を要確認。
WEBサイトに負荷が掛かる場合があるので要time.sleep

“`
import requests
from bs4 import BeautifulSoup

base_url = “WEBサイトのURL”

url = base_url
response = requests.get(url)
soup = BeautifulSoup(response.text, ‘html.parser’)
soup

#soupでHTMLを表示して抽出したいタグを確認
#今回は店舗名と住所をスクレイピング
—————————————————————————
import requests
from bs4 import Beautiful

元記事を表示

様々な画像劣化に対応するDASRスーパーレゾリューションモデル

https://github.com/The-Learning-And-Vision-Atelier-LAVA/DASR

これが元画像128*171
![IMG_8316.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/235259/7b65e6a4-acc4-cfa2-385c-87fdb55e8e8f.jpeg)

見やすいように引き伸ばすと、ピクセルのギザギザが出ます。

これをDASRで4倍スケール(512*684)にすると

![e5402346-a980-49bb-b65c-af44f54a4de8.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2352

元記事を表示

ChatGPTのノードエディタを作った話

## 前置き
こんにちは。半年ほど前になってしまいましたが、`ChatGraph`というChatGPTのノードエディタを作って公開していました。
https://uynet.booth.pm/items/4728147

![68747470733a2f2f71696974612d696d6167652d73746f72652e73332e61702d6e6f727468656173742d312e616d617a6f6e6177732e636f6d2f302f3437333837312f65356136333464372d343865342d393536622d356137302d3463346531633264613833362e706e67.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/473871/36509f0a-6cb2-cf56-778f-d2baac482ed8.png)

少し話題になり、GIGAZINEにも記事が上がってたので詳しい使い方などはこちらをどうぞ(ありがとう)
http

元記事を表示

警告を出さない「データ分析100本ノック」の回答【5章】

[前回](https://qiita.com/mickie895/items/c97aef07d73cffb8ecb1)に引き続き、データ分析100本ノックの別解を作っていく。

前回で思い知ったのと、今回も本文には言及のない邪悪なコード(“`warnings.filterwarnings(‘ignore’)“`)がサンプルコードの頭に仕込まれているため本文のコードは一切信用せず作っていく。

# ノック41

いつも通り各行をfor文で処理しているので、pandasのAPIを使ってfor文を消そう。こんな感じに。
なおノック42で参照したい列を引き継がせるために1列だけ書籍のデータより増えている。

“`py
year_months_source = uselog_months[“年月”].unique()
year_month_target = pd.DataFrame(data={“年月”:year_months_source[1:], “先月”:year_months_source[:-1]})

uselog = uselog_months\
.join(year_mo

元記事を表示

pipenvでsslエラー

# `pipenv sync`で ssl エラー

`pipenv sync`で環境構築を行おうとしたところ,ssl エラーが発生した.その解決策を未来の自分に向けて残しておく.

# 環境

– MacBook Pro (M1, 2020)
– macOS Sonoma 14.0
– Python 3.10.11
– pip 23.3.1
– pipenv, version 2023.10.24

# 問題点

`pipenv sync`で環境を構築しようとしたところ,以下のエラーが発生した.

“`zsh
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by

元記事を表示

PokeAPIでポケモンの日本語名を取得するには

# はじめに
前回の記事([PokeAPIで取得できるポケモンのデータを簡単にまとめてみた](https://qiita.com/jinto/items/c953ab25253d8ec82e30))で、
`GET https://pokeapi.co/api/v2/pokemon/{id or name}/`
では、英語のポケモン名しか取得できないため、日本語名を取得したい場合は別途処理が必要であるという説明をしておりました。

こちらの記事では、`PokeAPI`でポケモンの日本語名を取得するための関数を、実際に作成してみようと思います。

# 実装コード
今回はpythonを使用することとします。

日本語名の取得には、
`GET https://pokeapi.co/api/v2/pokemon-species/{id or name}/`
を実行する必要があります。

参考:https://pokeapi.co/docs/v2#pokemon-species

“`python
import requests

# ポケモンAPIのベースURL
BASE_URL = “htt

元記事を表示

初心者がFastAPI + React + Dockerで開発するときに考えたこと

# はじめに
FastAPI, React, Docker…どれも調べ調べに身につけて歴4ヶ月の者です。
今回は私流ではありますが、FastAPI + React + Dockerで開発するときに考えたことをまとめたいと思います。

### なぜFastAPIなのか?
FastAPIは、非同期処理を得意としたPythonのAPI構築webフレームワークです。PythonにはsklearnやPytorchなど機械学習に特化したライブラリーが揃っているので、バックエンドに機械学習を盛り込みたいという場合はFastAPIは有効だと考えてます。(今回は盛り込みませんが…)

### なぜDockerを使うのか?
バックエンドとフロントエンドでサーバーが分離している場合、dockerは有効になります。異なるコンテナを同時に起動させて中継することができるので、非常に便利です。中継がないと、デプロイ時にサーバーが2つ必要になるので、そういう点でも重要です。nginxなどでリバースプロキシを使うという手もありますが、今回はdockerでやっていきます。

# 1. ディレクトリ構造
プロジェク

元記事を表示

Pythonで〇×ゲームのAIを一から作成する その25 テストを行う関数とデータと処理の分離

# 目次と前回の記事

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

https://qiita.com/ysgeso/items/728cee8982fe0ed9da38

# 実装の進捗状況と前回までのおさらい

## 〇×ゲームの仕様と進捗状況

1. `正方形で区切られた 3 x 3 の 2 次元のゲーム盤上でゲームを行う`
2. `ゲーム開始時には、ゲーム盤のすべてのマスは空になっている`
3. `2 人のプレイヤーが遊ぶゲームであり、一人は 〇 を、もう一人は × のマークを受け持つ`
4. `2 人のプレイヤーは、交互に空いている好きなマスに自分のマークを 1 つ置く`
5. `先手は 〇 のプレイヤーである`
6. __プレイヤーがマークを置いた結果、縦、横、斜めのいずれかの一直線の 3 マスに同じマークが並んだ場合、そのマークのプレイヤーの勝利とし、ゲームが終了する__
7. __すべてのマスが埋まった時にゲームの決着がついていない場合は引き分けとする__

仕様の進捗状況は、以下のように表記します。

*

元記事を表示

OpenAIのAPIをリレーしてトークン数を測定する

# はじめに
OpenAIのAPIは非常に便利ですよね。多くの会社で活用されており、開発現場でも広く使用されていると思います。しかし、その中で問題になるのが、誰がどれくらいトークンを使用したかを把握することです。これが見えないため、個別のアカウントを持っている場合は分かりますが、共通の方法でトークン数を管理したいというニーズもあるでしょう。

そこで、今回はOpenAIのAPIをラップしてトークン数を測定する方法を模索しました。単純にAPIをラップして途中でトークン数を測定すれば、この課題を解決できるのではないかと考えましたので、コードを実装してみました。

# やりたいこと(図)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/418662/8f768df8-a027-fe6a-90ba-c163e8427010.png)
一旦はこんなイメージ
今回はチャットの基本機能だけWrapします。Embeddingなどほしい方は、それぞれ欲しい機能のパスを追加してリレーして上げる必要があります。

元記事を表示

Pillowを使って画像ファイルからフェードエフェクトを適用したスライドショー動画を作成する

# 概要
複数の画像ファイルからスライドショーの動画を作成するのは `ffmpeg` 等で簡単に可能ですが、単に画像を結合した場合では以下のようにやや味気ないスライドショーになってしまいます。

![フェードなしスライドショー](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/19959843-1e7d-b4d9-9a8d-713a41742a88.gif)

そこで、以下のようなフェードエフェクトを導入することで、ややリッチな動画になります。

![フェードありスライドショー](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/ceeb44de-c16b-6e54-145a-303b49a49eb3.gif)

`ffmpeg` でもフェードの導入は可能ですが、入力ファイルの数が多いとコマンドが煩雑になるため、ここでは Python で実装する方法を紹介します。

# 入力画像
入力する画像は何でも良いですが、ここで

元記事を表示

Python 自作でモジュールをimportする 補足

読み込みファイルが関数で記述されていない場合は
インポートした時点でそのファイル内容が実行される。

関数が記述されている場合、importしたファイルに記述されている関数が実行ファイル内に入るイメージで、実行される。

つまり、

main.py
 import test
 print(‘main.py’)
 test.test()

test .py
 print(‘関数外’)
 def test_b():
  print(‘テスト’)

main.pyを実行した結果は、以下となる。
 関数外
 main.py
 テスト

また、関数以外も記述しているファイルでimport時に実行せず関数だけを取り出したい場合は、
import対象のファイルで関数に囲まれていない処理を
if __name__ == “__main__”:の下に記述するよう書き換えると実行されない。

他にも
asを使うとモジュールや関数などに別名をつけられる。
from math import pi as PI

モジュールの種類によって以下の順番でグループ分けしてインポートするのが推奨されている。

元記事を表示

BedrockとAurora Serverless PostgreSQL pgvectorでRAGする – Amazon Titan Embeddingsでベクトル入門③

Aurora Serverless PostgreSQLのpgvectorをVector DBとして使用したRAGを構成します。

# 概念図
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/0225f260-2917-f334-ed02-3633d98e4a03.png)

# 構成図
VPCで閉じたかったのでCloud9を使っています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3573242/63dde7f3-6d2f-d233-be11-5faf7ae587cd.png)

# Aurora Serverless PostgreSQLの構成
エンジンタイプ Aurora PostgreSQL Compatible
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/357

元記事を表示

pythonでwordファイルを編集

pythonでwordファイルを編集

元記事を表示

逆誤差伝播法による微分のコーディング・ノート#1

## このノートの目的
目標は、分子動力学法(MD)で必要となる力の計算(=エネルギーの原子座標に対する偏微分より定まる)のコーディング。

原子座標に対するエネルギーの偏微分を手計算ですべて求める作業、またその式を正しくコードに落とし込む作業は、ポテンシャル関数が少し複雑になると(Tersoffなどの3体間ポテンシャルで既に)非常に煩雑になる。

そこで、逆誤差伝播法を活用した、比較的簡単な偏微分の求め方と、コーディングの際の注意点を学ぶことを目的として、簡単な関数からステップバイステップで進めていくこととする。

まずはpythonでの実装を試みる。

## 簡単な関数を用いたテスト

“`math
e=e(\boldsymbol{h})=|\boldsymbol{h}|
“`

“`math
\boldsymbol{h}=\boldsymbol{h(x)}=\frac{\boldsymbol{x}}{|\boldsymbol{x}|^2}
“`

のように、$\boldsymbol{x}$(ベクトル)から$e$(スカラー)が

“`math
\boldsymbol{x}

元記事を表示

プログラム実行層等の概念的解説、他、DF,変数などの受渡しについて

# プログラム実行層等の概念的解説

User
先生、プログラム層って、概念的に言うとこんな感じでしょうか?
**一番ベース部分にメインプログラム実行階層**があって、
その上に**独立した各クラスブロックが浮かんでおり**、
**メインプログラム階層で必要な時**に
**クラスブロックを呼んでインスタンス化して実体化**、**処理を実行**。
処理実行後、**処理したデータ類をメインプログラム内に残して**、
**次のメインプログラムのステップに受け渡して行く**。
そういう感じで、**メインプログラムの処理が進んでいく**。

ChatGPT
はい、おっしゃるとおりです。
お伝えいただいた概念的な説明は、
**オブジェクト指向プログラミングの基本的な考え方**をよく反映しています。

### メインプログラム実行階層
この部分は**アプリケーションのエントリーポイント**で、ここから**全体のフローが開始**されます。

### 独立した各クラスブロック
これらは**再利用可能なコードの部品として機能するクラス**です。
**それぞれのクラス**は**特定のタスクや機能を担当*

元記事を表示

PyCharmとDockerとAzure Container Appsでチャットボット開発と構築

# 概要

PyCharmとDockerを用いて開発を行い、それをAzureにデプロイしてみました。

:::note info
PyCharmではDockerだけでなくdocker-composeも使用していますが、なぜかDockerの外側からのポート指定が上手くいかなかったのでdocker-composeを経由しています。Docker Desktopから起動した場合やアプリのデプロイ時には上手くいっているので、PyCharm上の設定が上手くいっていないのだと思います。
:::

## ソースコード
以下ではソースコードについては説明していません。
適宜、下記ソースコードを参照してください。

– https://github.com/hydrangeas/langchain-chainlit-test

## アーキテクチャ

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/7886/97bd7d81-ad36-98f9-f215-9b1b2d7390fc.png)

## ディレクト

元記事を表示

ABC327をPythonで解いてみたよ。(A~F問題)

[AtCoder Beginners Contest 327 (ABC327)](https://atcoder.jp/contests/abc327) をPythonで解きました。
見やすいコードを書く練習も兼ねてます。

TwitterとPayPayリンクをまとめたリトリンを下に貼ってあります。
Twitterのフォローお待ちしてます!(DMでなにか一言いただけるとたすかります…!)
この記事が役に立ったなと思ったら、PayPayのご支援もよろしくお願いします┏○ペコッ

https://lit.link/mer6177999

# A – ab

## 問題
文字列 $S$ の中に、`a` と `b` が隣り合ったところはありますか?

https://atcoder.jp/contests/abc327/tasks/abc327_a

## 考察
「`a` と `b` が隣り合っている」というのは、「文字列 $S$ の中に `ab` もしくは `ba` がある」というのと同じです。

「`ab` が文字列 $S$ の中にある」というのは、`’ab’ in S` で表せ

元記事を表示

PythonのDocstring

# 参考リンク

https://qiita.com/flcn-x/items/393c6f1f1e1e5abec906

https://ya6mablog.com/python-docstring-guide/

# google style

テンプレートは下記

“`python
def add(a, b):
“””
2つの数値を受け取り、その和を返す関数。

引数:
a (float): 数値1
b (float): 数値2

戻り値:
float: aとbの和

例:
>>> add(1,2)
3

注意事項:

“””
return a + b
“`

元記事を表示

OTHERカテゴリの最新記事