SQLModel
SQLModel テーブル定義 SQLModel で簡単なテーブルを作成する Alembic マイグレーション SQLModel で設計したモデルを Alembic でマイグレーション Alembic で複数モデルを扱う alembic + SQLModelでデータベースをマイグレーションする
SQLModel テーブル定義 SQLModel で簡単なテーブルを作成する Alembic マイグレーション SQLModel で設計したモデルを Alembic でマイグレーション Alembic で複数モデルを扱う alembic + SQLModelでデータベースをマイグレーションする
Javascript ページ内のアンカーの取得 ブラウザの「検証」でコンソールからプログラムを実行 1 2 3 4 5 6 // ページ内のすべてのアンカー要素を取得 const anchors = document.querySelectorAll('a'); // アンカーのhref属性を配列に格納 const urls = Array.from(anchors).map(anchor => anchor.href); // 結果をコンソールに表示 console.log(urls);
Wordpress脆弱性 Advanced Custom Fields (ACF) https://rocket-boys.co.jp/7886/
Gunicorn max_requests / max_requests_jitter Gunicornでメモリリークを避けるために子プロセスを定期的に再起動するには、max_requestsとmax_requests_jitterの設定を利用するのが効果的です。これにより、一定のリクエスト数を処理した後にワーカープロセスが自動的に再起動されます。 以下はその設定方法です: max_requests: 各ワーカープロセスが再起動される前に処理するリクエストの最大数を指定します。 max_requests_jitter: 再起動のタイミングをランダム化するためのオプションです。これにより、全てのワーカープロセスが同時に再起動されるのを防ぎます。 Gunicornの設定ファイル(例:gunicorn.conf.py)に以下のように追加します: 1 2 3 4 # gunicorn.conf.py max_requests = 1000 # 1000リクエストごとに再起動 max_requests_jitter = 50 # 再起動タイミングをランダム化 または、コマンドラインで起動する際にオプションとして指定することもできます: 1 gunicorn --max-requests 1000 --max-requests-jitter 50 myapp:app これにより、各ワーカープロセスは1000回のリクエストを処理した後、ランダムに最大50回のリクエストを追加で処理してから再起動されます¹(https://qiita.com/ryu22e/items/2668a2243a5191bcdc78)²(https://zenn.dev/xknzw/articles/d2d337ae2f8966)³(https://qiita.com/_konishi_/items/1dc2bbfc386f57d06934)。 この設定により、メモリリークの影響を最小限に抑えつつ、サービスの安定性を保つことができます。 ¹(https://qiita.com/ryu22e/items/2668a2243a5191bcdc78): gunicorn(>=19.2)ではmax_requestsと一緒にmax_requests_jitterも使おう - Qiita ²(https://zenn.dev/xknzw/articles/d2d337ae2f8966): gunicorn syncワーカーの全体像メモ - Zenn ³(https://qiita.com/_konishi_/items/1dc2bbfc386f57d06934): gunicornでディスク使用量が増え続ける現象への対処 - Qiita (1) gunicorn(>=19.2)ではmax_requestsと一緒にmax_requests_jitterも使おう. https://qiita.com/ryu22e/items/2668a2243a5191bcdc78. (2) gunicorn syncワーカーの全体像メモ - Zenn. https://zenn.dev/xknzw/articles/d2d337ae2f8966. (3) gunicornでディスク使用量が増え続ける現象への対処 - Qiita. https://qiita.com/_konishi_/items/1dc2bbfc386f57d06934.
ltsv ltsv から csvに変換 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/env python import click import pandas as pd import csv import re @click.group() @click.option("--tf_output", "-to", default=None) @click.pass_context def group(ctx, tf_output): pass @group.command() @click.argument("src") @click.pass_context def ltsv2csv(ctx, src): """LTSV to CSV""" output = f"{src}.csv" def get_line_dict(line): return dict(re.search(r"^([^\:]+)\:(.*)$", i).groups() for i in line) with open(src) as f: data = pd.DataFrame(map(get_line_dict, csv.reader(f, delimiter="\t"))) data.to_csv(output, index=False) if __name__ == "__main__": group()
Alembic リレーション フェイクマイグレーション
NPS(Net Promoter Score) Net Promoter Score (NPS) とは、顧客が企業や製品、サービスを他人に推薦する可能性を測定する指標です。 NPSは、顧客満足度やロイヤルティを評価するために広く使用されています。 NPSは、次のような質問に基づいて計算されます: 「この製品/サービスを友人や同僚に推薦する可能性はどのくらいありますか?」顧客は0から10のスケールで回答します。 9-10: 推奨者 (Promoters) - 非常に満足しており、積極的に推薦する可能性が高い。 7-8: 中立者 (Passives) - 満足しているが、積極的に推薦する可能性は低い。 0-6: 批判者 (Detractors) - 不満を持っており、他人に推薦しない可能性が高い。 NPSは、推奨者の割合から批判者の割合を引くことで計算されます。例えば、100人の顧客のうち60人が推奨者、20人が中立者、20人が批判者の場合、NPSは40(60% - 20%)となります。 NPSは、企業が顧客のフィードバックを理解し、改善点を見つけるための重要なツールです。 例 NPSの設問はシンプルで、次のように記述されます: 「この製品/サービスを友人や同僚に推薦する可能性はどのくらいありますか?」 回答は0から10のスケールで行います。具体的には以下のような形式です: 0 - 全く推薦しない 1 2 3 4 5 6 7 8 9 10 - 非常に推薦する この設問に続けて、自由記述欄を設けることも一般的です。例えば: 「この評価の理由を教えてください。」 これにより、顧客の具体的なフィードバックを収集しやすくなります。 記事 第113回: NPS(Net Promoter Score)という名の推奨意向 NPS®(ネットプロモータースコア)とは?
アンケート 「ランキング(順位回答) 「ランキング(順位回答)」形式の設問を設定する際には、回答者に複数の選択肢を提示し、それらを順位付けしてもらう形になります。具体的な記述例を以下に示します: 設問例 Q1. 以下の旅行先を、行きたい順に1位から5位まで順位付けしてください。 パリ ニューヨーク 東京 ローマ シドニー 回答方法 回答者は、各選択肢に対して順位を記入します。例えば: 1位: 東京 2位: パリ 3位: シドニー 4位: ニューヨーク 5位: ローマ このように、回答者が自分の好みに基づいて順位を付けることで、アンケートの結果から人気のある選択肢や優先順位を分析することができます。
DSPy (Declarative Sequencing for Python) https://dspy-docs.vercel.app/ (Programming—not prompting—Language Models) DSPyについて DSPyは、LMプロンプトとウェイトをアルゴリズム的に最適化するためのフレームワークです、 特にLMがパイプライン内で1回以上使用される場合。 LMを使用して複雑なシステムを構築する なし DSPy、あなたは一般的に次のことを行う必要があります: (1)問題をステップに分解する、 (2)各ステップが個別にうまく機能するまでLMをうまく促す、 (3)ステップを微調整してうまく連携する、 (4)合成例を生成する各ステップを調整し、 (5)これらの例を使用して、より小さなLMを調整してコストを削減します。 現在、これは困難で厄介です。パイプライン、LM、またはデータを変更するたびに、すべてのプロンプト(または微調整手順)を変更する必要がある場合があります。 これをより体系的ではるかに強力にするために、 DSPy 2つのことを行います。 まず、プログラムの流れを分離します(modules)各ステップのパラメーター(LMプロンプトとウェイト)から。 第二に、 DSPy 新しい optimizers、これは、LMコールのプロンプトやウェイトを調整できるLM駆動アルゴリズムです。metric 最大化したい。 DSPy のような強力なモデルを日常的に教えることができます GPT-3.5 または GPT-4 と地元のモデル T5-base または Llama2-13b タスクではるかに信頼性が高くなること、つまり、より高い品質を持つこと、および/または特定の障害パターンを回避すること。 DSPy オプティマイザーは 同じ プログラム 異なる 各LMの指示、ショットの少ないプロンプト、および/またはウェイトの更新(finetunes)。 これは、LMとそのプロンプトが、データから学習できるより大きなシステムの最適化可能な部分としてバックグラウンドにフェードインする新しいパラダイムです。 tldr; LMでハードタスクを解決するためのプロンプトが少なく、スコアが高く、より体系的なアプローチ。 ニューラルネットワークへのアナロジー ニューラルネットワークを構築するときは、マニュアルを書きません for-loops 以上のリスト 手調整 フロート。代わりに、次のようなフレームワークを使用できます PyTorch レイヤーを作成する(例: Convolution または Dropout)0次に、オプティマイザー(SGDやAdamなど)を使用して、ネットワークのパラメーターを学習します。 同上!DSPy 適切な汎用モジュールを提供します (例: ChainOfThought、 ReAct等)、文字列ベースのプロンプトトリックを置き換えます。 迅速なハッキングと1回限りの合成データジェネレーターを置き換えるには、 DSPy 一般的なオプティマイザーも提供します(BootstrapFewShotWithRandomSearch または MIPRO)、 これはプログラムのパラメーターを更新するアルゴリズムです。 コード、データ、アサーション、またはメトリックを変更するときはいつでも、 コンパイル あなたのプログラムをもう一度 DSPy 変更に適合する新しい効果的なプロンプトを作成します。 ...
Qdrant ベクターデータベース Chroma https://www.trychroma.com/ Pinecone https://www.pinecone.io/ Weaviate https://weaviate.io/ja Qdrant https://qdrant.tech/ レコードID Qdrantのレコードを更新する際のキー情報は、レコードのIDです。 Qdrantでは、各レコード(Point)は一意の識別子(ID)、ベクトル、そしてペイロード(追加情報)で構成されています¹。 レコードを更新する際には、このIDを使用して特定のレコードを指定します¹。 Lexical Search Lexical Search(レキシカル検索)は、キーワードベースの検索の一種で、[力されたクエリとデータベース内のテキストの正確な一致を探す方法です¹²。具体的には、以下のような特徴があります:> 正確な一致:クエリに入力された単語とデータベース内の単語が正確に一致するものを探します。スペルや文法のバリエーションは無視されます¹。 高速で効率的:特定の名前や日付など、変更されにくい情報を迅速に見つけるのに適しています¹。 シンプルな実装:多くの検索エンジンやデータベースで一般的に使用される方法です²。 例えば、データベース内で特定の人物の名前を探す場合、レキシカル検索を使用するとその名前と正確に一致するエントリを見つけることができます。 一方で、レキシカル検索は意味の理解を伴わないため、同義語や文脈を考慮した検索には向いていません³。そのため、より高度な検索が必要な場合は、セマンティック検索(意味検索)などの他の方法が使用されることがあります¹。 (1) Lexical Search Vs Semantic Search - Try Speak Free!. https://speakai.co/lexical-search-vs-semantic-search/. (2) Lexical and semantic search with Elasticsearch. https://www.elastic.co/search-labs/blog/lexical-and-semantic-search-with-elasticsearch. (3) Search in a Knowledge Base – Introduction & Lexical Search - Semedy. https://www.semedy.com/post/search-in-a-knowledge-base-introduction-lexical-search. Dense Search(デンス検索) Dense Search(デンス検索)は、高次元の数値ベクトルを使用してデータを検索する方法です。 これは、特にセマンティック検索(意味検索)に適しており、クエリとデータベース内のドキュメントの間の意味的な類似性を評価します¹²。 特徴 ベクトル表現:テキストや画像などのデータを高次元のベクトルに変換します。 これにより、データの意味的な情報を数値として表現できます¹。 距離計算:クエリベクトルとデータベース内のベクトル間の距離(例えば、ユークリッド距離やコサイン類似度)を計算し、最も類似した結果を返します²。 機械学習モデル:BERTやGloVeなどの機械学習モデルを使用して、データをベクトルにエンコードします²。 利点 意味的な一致:キーワードの正確な一致に依存せず、意味的に関連する結果を返すことができます³。 多様なデータ対応:テキストだけでなく、画像や音声などの異なるデータタイプにも適用可能です¹。 使用例 Dense Searchは、検索エンジンやレコメンデーションシステムなどで広く使用されています。 例えば、ユーザーが入力したクエリに対して、意味的に関連するドキュメントや商品を見つけるのに役立ちます。 ¹: Dense Vector Search :: Apache Solr Reference Guide ²: Hybrid Search Explained - Weaviate ³: Understanding hybrid search - Pinecone Docs ...