検索

テキスト間テクノロジーは、ユーザーの要求の完全なコンテキストと意味をキャプチャするのに頻繁に苦労しており、意図したものと正確に一致しないクエリをもたらします。開発者はこれらのシステムを強化するために一生懸命働いていますが、より良い方法があるかどうか疑問に思う価値があります。

Rag-to-SQLを入力します。これは、自然言語の理解と強力なデータ取得を組み合わせて正確なSQLクエリを生成する新しいアプローチです。最高の自然言語処理と情報検索をブレンドすることにより、Rag-to-SQLは、日常の言語をデータベースから意味のある洞察に変えるためのより信頼性の高い方法を提供します。

この記事では、特にBigQueryやVertex AIなどのGoogleクラウドサービスを使用して、Rag-to-SQLがデータベースと対話する方法をどのように変換できるかを調べます。

学習目標

  • ユーザーの意図を正確にキャプチャする際に、テキスト間システムの制限を特定します。
  • より信頼性の高いSQLクエリを生成するための新しいパラダイムとしてのRAG-to-SQLの利点を理解します。
  • BigQueryやVertex AIなどのGoogle Cloud Servicesを使用して、Rag-to-SQLアプローチを実装します。
  • RAG-to-SQL実装のために、複数のGoogleクラウドツールを統合および利用する方法を学びます。

この記事は、データサイエンスブログソンの一部として公開されました

目次

  • 学習目標
  • 従来のテキスト間アプローチの制限
  • rag-to-sqlとは何ですか?
  • Googleクラウドでrag-to-sqlをセットアップする:ステップバイステップガイド
    • コードの前提条件
    • コードフローチャート
    • ステップ1:必要なライブラリのインストール
    • ステップ2:Googleクラウドプロジェクトと資格情報の構成
    • ステップ3:テーブルスキーマストレージ用のベクトルデータベースの構築
    • ステップ4:SQLクエリ、解釈、エージェントチェーンのLLMモデルのインスタンス化
    • ステップ5:SQLクエリチェーンの構築
    • ステップ6:解釈のためのSQLチェーン出力を改良します
    • ステップ7:クエリ結果のために解釈チェーンを構築します
    • ステップ8:動的クエリルーティングのためにエージェントチェーンの実装
  • 結論
    • キーテイクアウト
  • よくある質問

従来のテキスト間アプローチの制限

LLMのSQLモデルへのテキストの背後にある主なアイデアは、SQLについて知らない人がデータベースと対話し、代わりに自然言語を使用して情報を取得できるようにすることでした。既存のテキスト2 SQLフレームワークは、主にLLMの知識に依存して、自然言語クエリをSQLクエリに変換できるようにします。これにより、SQLクエリの間違ったまたは無効な定式化につながる可能性があります。これは、SQLへの新しいアプローチのぼろきれが救助に来る場所であり、次のセクションで説明されています。

rag-to-sqlとは何ですか?

テキストの欠点をSQLに克服するために、RAGの革新的なアプローチをSQLに使用できます。データベースに関するドメイン情報の統合は、各テキストからSQLへのソフトウェアが直面する主要な問題です。 RAG2SQLアーキテクチャは、コンテキストデータ(メタデータ、DDL、クエリなど)を追加することにより、この困難に対処します。このデータは「トレーニング」され、使用が可能になります。
さらに、「レトリーバー」は、最も関連性の高いコンテキストを評価および転送して、ユーザークエリに応答します。最終結果は、精度が大幅に改善されています。

Googleクラウドでrag-to-sqlをセットアップする:ステップバイステップガイド

詳細なガイドに従って、BigQueryやVertex AIなどのGoogleクラウドサービスを使用してRAG-to-SQLを実装してください。

コードの前提条件

このコードに従って実行するには、GCP(支払い情報を備えたGoogle Cloudアカウント)をセットアップする必要があります。当初、彼らは90日間無料の300ドルの試用を提供するため、料金は発生しません。アカウントセットアップの詳細:リンク

コードフローチャート

以下は、コードのさまざまなブロックをより高いレベルで説明するコードフローチャートです。続行すると、それを参照することができます。

Googleクラウドのrag-to-sql

コードの実装は、3つの主要なブロックに分けることができます。

  • SQLクエリチェーン:このチェーンは、ユーザーの質問とベクトルDBから取得したテーブルの関連するスキーマに基づいて、適切なSQLクエリを生成する責任があります。
  • 解釈チェーン:このチェーンは、前のチェーンからSQLクエリを取得し、BigQueryで実行し、結果を使用して適切なプロンプトで応答を生成します。
  • エージェントチェーン:これは、上記の2つのチェーンをカプセル化する最終チェーンです。ユーザーの質問が入ったときはいつでも、SQLクエリツールを呼び出すか、質問に直接答えるかを決定します。質問に答えるために必要なタスクに基づいて、ユーザークエリをさまざまなツールにルーティングします。

ステップ1:必要なライブラリのインストール

Colabノートブックでは、この実装に必要な以下のライブラリをインストールする必要があります。

 !ピップインストールlangchain == 0.0.340 -Quiet
! PIPインストールChromadb == 0.4.13 -Quiet
! PIPインストールGoogle-Cloud-BigQuery [Pandas] -Quiet
! PIPインストールGoogle-Cloud-aiplatform-quiet#Import csv

ステップ2:Googleクラウドプロジェクトと資格情報の構成

次に、GCPプロジェクトとビッグクエリデータセットを初期化するために、いくつかの変数を宣言する必要があります。この変数を使用して、ノートブックでGCPを使用してビッグクエリのテーブルにアクセスできます。

この詳細は、GCPクラウドコンソールで表示できます。 BigQueryでは、データセットを作成できます。データセット内でテーブルを追加またはアップロードして、詳細については、DataSetand Create Tableの作成を参照してください。

 vertex_project = "あなたのGCPプロジェクトID"#@param {type: "string"}
vertex_region = "us-central1"#@param {type: "string"}

bigquery_dataset = "ビッグクエリデータセット名"#@param {type: "string"}
bigquery_project = "vertexプロジェクトID"#@param {type: "string"}

次に、Colabの以下のコードを使用して、ノートブックからGCP Vertex AIに認証してログインします。

 Google.Colab Import Authから
auth.authenticate_user()

Vertexaiをインポートします
vertexai.init(project = vertex_project、location = vertex_region)

ステップ3:テーブルスキーマストレージ用のベクトルデータベースの構築

次に、データセットに存在するさまざまなテーブルのスキーマを含むベクトルDBを作成する必要があり、このベクトルDBの上にレトリバーを作成して、ワークフローにRAGを組み込むことができます。

PythonでBQクライアントを使用してビッグクエリに接続し、テーブルのスキーマを取得します。

 Google.CloudからImport BigQueryから
JSONをインポートします

#テーブルの拡張スキーマ

bq_client = bigquery.client(project = vertex_project)
bq_tables = bq_client.list_tables(dataset = f "{bigquery_project}。{bigquery_dataset}")
スキーマ= []
bq_tablesのbq_tableの場合:
   t = bq_client.get_table(f "{bigquery_project}。{bigquery_dataset}。{bq_table.table_id}")
   schema_fields = [f.to_api_repr()t.schemaのfの場合]
   schema = f "テーブルのスキーマ{bq_table.table_id}は次のとおりです。
   schemas.append(スキーマ)

print(f "found {len(schemas)} dataset {bigquery_project}:{bigquery_dataset}")#インポートCSV

スキーマをクロマDBなどのベクターDBに保存します。 「データ」と呼ばれるフォルダーを作成する必要があります

langchain.embeddingsからvertexaiembeddingsをインポートします
langchain.vectorstoresからchromaをインポートします

埋め込み= vertexaiembedings()
試してください:#複製されたドキュメントを避けてください
  vector_store.delete_collection()
を除外する:
  印刷(「ベクターストアを掃除する必要はありません」)
vector_store = chroma.from_texts(schemas、embedding = embeddings、persist_directory = '。/data')
n_docs = len(vector_store.get()['ids'])
retriever = vector_store.as_retriever(search_kwargs = {'k':2})
印刷(f "ベクターストアには{n_docs}ドキュメントがあります")

ステップ4:SQLクエリ、解釈、エージェントチェーンのLLMモデルのインスタンス化

3つの異なるチェーンの3つのLLMモデルをインスタンス化します。

最初のモデルは、ユーザー質問と同様のベクトルDBから取得されたユーザーの質問とテーブルスキーマに基づいてSQLクエリを生成する責任があるクエリモデルです。このためには、「CodeChat-Bison」を使用していますモデル 。このモデルは、異なるコーディング言語でコードを生成することを専門とするため、ユースケースに適しています。

他の2つのモデルは、「 Gemini-1.5-Flash-001 」であるChatvertexaiのデフォルトのLLMモデルです。これは、チャットとクイック応答のために最適化された最新のGeminiモデルです。

 langchain.chat_modelsからChatvertexaiをインポートします
langchain.llmsからVertexaiをインポートします

query_model = chatvertexai(model_name = "codechat-bison"、max_output_tokens = 1000)
relution_data_model = chatvertexai(max_output_tokens = 1000)
agent_model = chatvertexai(max_output_tokens = 1024)

ステップ5:SQLクエリチェーンの構築

以下は、入力ユーザーの質問のSQLクエリを生成するために使用されるSQLプロンプトです。

 SQL_PROMPT = "" "あなたはSQLおよびBigQueryの専門家です。

あなたの仕事は、SQLでBigQueryのクエリを作成することです。

次の段落には、クエリに使用されるテーブルのスキーマが含まれています。 JSON形式でエンコードされています。

{コンテクスト}

上記のテーブルを使用して、次のユーザー入力に対してBigQuery SQLクエリを作成します。
SQLクエリにはスキーマで言及されている列のみを使用します

ユーザーとエージェントはこれまでにこの会話をしました:
{chat_history}

これらの制限に厳密に従ってください:
-SQLコードのみを返します。
 - バックテックやマークアップを追加しないでください。クエリを出力としてのみ書き込みます。他に何もありません。
 -  fromで、常にテーブルパスを使用して、 `{project}`をプロジェクトとして使用し、 `{dataset}` as datasetを使用します。
 - 常に国の名前を完全な大文字に変換してください。たとえば、国が日本の場合は、クエリで日本を使用する必要があります。

ユーザー入力:{質問}

SQLクエリ:
"" "

次に、ユーザー質問入力の関連ドキュメントIEスキーマを取得する関数を定義します。

 langchain.schema.vectorStoreからVectorStoreretrieverから
def get_documents(retriever:vectorStoreretriever、質問:str) - > str:
  #最初のドキュメントのみを返します
  output = ""
  retriever.get_relevant_documents(quuctise)のdの場合:
    output = D.Page_Content
    output = "\ n"
    返品出力

次に、LANGCHAIN Expression Language Syntaxを使用してLLMチェーンを定義します。注プロンプトを5つのプレースホルダー変数で定義し、後で2つのプレースホルダー変数プロジェクトとデータセットに記入して部分的なプロンプトを定義します。

オペレーターからItemgetterをインポートします
from langchain.prompts Import prompttemplate
langchain.schemaからインポートStroutputParserから

prompt_template = prompttemplate(
    input_variables = ["context"、 "chat_history"、 "question"、 "project"、 "dataset"]、
    テンプレート= sql_prompt)

partial_prompt = prompt_template.partial(project = bigquery_project、
                                         データセット= bigquery_dataset)

#入力は{"input": "some_question"、 "chat_history": "history"のようになります}
docs = {"context":lambda x:get_documents(retriver、x ['input'])}
質問= {"質問":itemgetter( "input")}
chat_history = {"chat_history":itemgetter( "chat_history")}
query_chain = docs |質問| chat_history | partial_prompt | query_model
query = query_chain | stroutputparser()

Langchainのコールバックハンドラーを使用してチェーンをテストしましょう。これにより、チェーン実行の各ステップが詳細に表示されます。

 langchain.callbacks.tracersからconsolecallbackhandlerをインポートします
# 例
x = {"input": "スタートステーションがアトランティックアベニュー&フォートグリーンPL"からの最高の旅行期間 "、" chat_history ":" "}
print(query.invoke(x、config = {'callbacks':[consolecallbackhandler()]})))) 

Googleクラウドのrag-to-sql

Googleクラウドのrag-to-sql

ステップ6:解釈のためのSQLチェーン出力を改良します

上記のSQLチェーン出力を改良する必要があります。これにより、OUTPに他の変数も含まれるようにする必要があります

 langchain.output_parsersからImport ResponseSchema、structuredOutputParserから
langchain.schema.runnable Import runnablelambdaから

#チェーンの出力を拒否して、辞書形式の出力に他の変数を含める
def _dict_to_json(x:dict) - > str:
  "` `\ n" json.dumps(x) "\ n```"を返します

query_response_schema = [
    ResponseSchema(name = "query"、description = "ユーザーの質問を解決するためのsql query。")、
    ResponseSchema(name = "question"、description = "ユーザーから質問された質問。")、
    ResponseSchema(name = "Context"、description = "Vectorストアから取得されたドキュメント")
  ]
query_output_parser = structuredoutputparser.from_response_schemas(query_response_schema)
query_output_json = docs |質問| {"query":query} | runnablelambda(_dict_to_json)| stroutputparser()
query_output = query_output_json | query_output_parser

このチェーンを実行してみましょう。

 # 例
x = {"input": "トップ2のスタートステーションを教えてください。旅行期間が最高でしたか?"、 "chat_history": ""}
output = query_output.invoke(x)#出力は辞書になり、次のチェーンの入力になりました

Googleクラウドのrag-to-sql

上記では、洗練されたチェーンの出力がSQLクエリであることがわかります。

ステップ7:クエリ結果のために解釈チェーンを構築します

次に、上記で定義されたSQLクエリチェーンの出力を取得する次のチェーンを構築する必要があります。このチェーンは、以前のチェーンからSQLクエリを取得し、ビッグクエリで実行し、その結果を使用して適切なプロンプトを使用して応答を生成します。

 relution_prompt = "" "あなたは大物の専門家です。また、CSVからデータを抽出する専門家でもあります。

次の段落では、クエリに使用されるテーブルのスキーマについて説明します。 JSON形式でエンコードされています。

{コンテクスト}

ユーザーがこの質問をしました:
{質問}

答えを見つけるために、次のSQLクエリがBigQueryで実行されました。
`` `
{Query}
`` `

そのクエリの結果は、CSV形式の次の表でした。
`` `
{結果}
`` `

これらの結果に基づいて、ユーザーの質問に対する簡単な答えを提供します。

これらの制限に厳密に従ってください:
 - 答えがどのように得られるかについて説明しないでください、答えを書くだけです。
 - クエリの結果からのみ、回答に関連する値を抽出します。他のデータソースを使用しないでください。
 - 答えを書いて、答えから質問を省略してください。これはチャットです。答えを提供してください。
 - 結果で答えが見つからない場合は、データを構成しないでください。「答えが見つかりません」と言ってください。
"" "
 Google.CloudからImport BigQueryから
def get_bq_csv(bq_client:bigquery.client、query:str) - > str:
  cleaned_query = clean_query(query)
  df = bq_client.query(cleaned_query、location = "us")。to_dataframe()
  df.to_csvを返す(index = false)


def clean_query(query:str):
  query = query.replace( "` `sql"、 "")
  cleaned_query = query.replace( "` `` "、" ")

  Cleaned_Queryを返します

2つの関数はClean_Queryです。これにより、アポストロフィやその他の不要な文字のSQLクエリがクリーニングされます。

 #前のチェーンの出力を取得します


query = {"query":itemgetter( "query")}
Context = {"context":itemgetter( "context")}
質問= {"question":itemgetter( "question")}
#cleaned_query = {"result":lambda x:clean_query(x ["query"])}
query_result = {"result":lambda x:get_bq_csv(bq_client、x ["query"])}

prompt = prompttemplate(
    input_variables = ["question"、 "query"、 "result"、 "context"]、
    Template = rettren_prompt)

run_bq_chain = context |質問|クエリ| query_result |プロンプト
run_bq_result = run_bq_chain | relution_data_model | stroutputparser()

チェーンを実行してテストしましょう。

 # 例
x = {"input": "トップ2のスタートステーションを教えてください。旅行期間が最高でしたか?"、 "chat_history": ""}
final_response = run_bq_result.invoke(query_output.invoke(x))
print(final_response)

Googleクラウドのrag-to-sql

ステップ8:動的クエリルーティングのためにエージェントチェーンの実装

次に、エージェントチェーンである最終チェーンを構築します。ユーザーが質問をすると、SQLクエリツールを使用するか、直接回答するかどうかが決定されます。基本的に、ユーザーの問い合わせに答えるために完了する必要がある作業に応じて、ユーザークエリをさまざまなツールに送信します。

Agent_memory、エージェントプロンプト、ツールFuntionを定義します。

 langchain.memoryからImport ConversationBufferWindowMemoryから

agent_memory = conversationBufferWindowMemory(
    memory_key = "chat_history"、
    k = 10、
    return_messages = true)
 agent_prompt = "" "あなたは非常に強力なアシスタントであり、BigQueryを使用して質問に答えることができます。

ツールuser_question_toolを呼び出して、BigQueryを使用して質問に答えることができます。

常にツールを使用して、質問に答えてください。コンテキストにチャット履歴を使用します。他の外部情報を使用しようとしないでください。

ユーザーが間違ったものを書いて、質問を任意のツールに渡す前にユーザーのスペルを修正することができると仮定します。

あなたがあなたの答えで使用したツールについては言及しないでください。
"" "
 langchain.toolsインポートツールから
langchain.callbacks.tracersからconsolecallbackhandlerをインポートします

@道具
def user_question_tool(question) - > str:
  "" "BigQueryを使用してユーザーからの自然言語の質問に答えるのに役立つ。" ""
  config = {'callbacks':[consolecallbackhandler()]}
  config = {}
  メモリ= agent_memory.buffer_as_str.strip()
  質問= {"input":question、 "chat_history":メモリ}
  query = query_output.invoke(question、config = config)
  print( "\ n \ n **************** \ n \ n")
  印刷(query ['query'])
  print( "\ n \ n **************** \ n \ n")
  result = run_bq_result.invoke(query、config = config)
  return result.strip()

現在、エージェントのすべての主要なコンポーネントをまとめて、エージェントを初期化します。

 langchain.agentsからImport AgentType、intiality_agent、agentexecutorから

agent_kwgards = {"system_message":agent_prompt}
agent_tools = [user_question_tool]

agent_memory.clear()

agent = initialize_agent(
    ツール= agent_tools、
    llm = agent_model、
    agent = agentType.Chat_Conversational_ReaCt_Description、
    メモリ= agent_memory、
    agent_kwgards = agent_kwgards、
    max_iterations = 5、
    Early_stopping_method = 'Generate'、
    verbose = true)

今すぐエージェントを実行しましょう。

 Q = "旅行期間が最も高いトップ2の開始ステーションを教えてください。"
agent.invoke(q) 

Googleクラウドのrag-to-sql

Googleクラウドのrag-to-sql

エージェントへのフォローアップの質問。

 Q = "これらのステーション名のそれぞれの容量は何ですか?」
agent.invoke(q) 

Googleクラウドのrag-to-sql

Googleクラウドのrag-to-sql

観察

エージェントは、複雑な質問を正確に処理することができ、またチャット履歴に基づいたフォローアップ質問の正しい回答を生成し、別のテーブルを使用してシティバイクの容量情報を取得しました。

結論

Rag-to-SQLアプローチは、コンテキストデータを組み込み、検索技術を活用することにより、従来のテキストからSQLモデルの制限に対処する際の大きな進歩を表しています。この方法論は、ベクトルデータベースから関連するスキーマ情報を取得することにより、クエリの精度を向上させ、より正確なSQL生成を可能にします。 BigQueryやVertex AIなどのGoogleクラウドサービス内でRAG-to-SQLを実装すると、実際のアプリケーションでのスケーラビリティと有効性が示されています。クエリ処理で意思決定プロセスを自動化することにより、Rag-to-SQLは、非技術的なユーザーが高精度を維持しながらデータベースとシームレスに対話するための新しい可能性を開きます。

キーテイクアウト

  • 克服テキストからSQLへの制限は、メタデータを統合することにより、従来のテキスト間モデルの一般的な落とし穴に対処します。
  • エージェントベースのシステムは、ユーザークエリを処理する方法を効率的に決定し、ユーザビリティを向上させます。
  • RAG-to-SQLにより、非技術的なユーザーは、自然言語入力を使用して複雑なSQLクエリを生成できます。
  • このアプローチは、BigQueryやVertex AIなどのサービスを使用して正常に実装されています。

よくある質問

Q1。 GCP Vertex AIアクセスは無料ですか?

A.いいえ。ただし、初めて登録している場合は300ドルのクレジットで90日間の試用期間を取得でき、アクセスするためのカードの詳細を提供するだけです。カードから控除されることはありません。300ドルのクレジットを超えて消費しているサービスを使用している場合でも、Googleはサービスを使用できるように支払いアカウントを有効にするように依頼します。したがって、金額の自動控除はありません。

Q2。 ragをSQLに使用することの重要な利点は何ですか?

A.これにより、複数のテーブルを使用している場合、LLMに供給されるテーブルスキーマを自動化できます。一度にすべてのテーブルスキーマをフィードする必要はありません。ユーザークエリに基づいて、関連するテーブルスキーマをぼろからフェッチできます。したがって、従来のテキストに対する効率の向上SQLシステムへ。

Q3。 エージェントはこのユースケースにどのように役立つことができますか?

A.全体的なチャットボットを構築している場合、SQLクエリツールを除いて他の多くのツールが必要になる場合があります。そのため、エージェントを活用して、Web検索、データベースSQLクエリツール、その他のRAGツール、APIツールを呼び出す機能などの複数のツールを提供できます。これにより、ユーザークエリに応答するために達成する必要があるタスクに基づいて、さまざまな種類のユーザークエリを処理できます。

この記事に示されているメディアは、Analytics Vidhyaが所有しておらず、著者の裁量で使用されています。

以上がGoogleクラウドのrag-to-sqlの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
10生成AIコーディング拡張機能とコードのコードを探る必要があります10生成AIコーディング拡張機能とコードのコードを探る必要がありますApr 13, 2025 am 01:14 AM

ねえ、忍者をコーディング!その日はどのようなコーディング関連のタスクを計画していますか?このブログにさらに飛び込む前に、コーディング関連のすべての問題について考えてほしいです。 終わり? - &#8217を見てみましょう

革新を調理する:人工知能がフードサービスを変革する方法革新を調理する:人工知能がフードサービスを変革する方法Apr 12, 2025 pm 12:09 PM

食品の準備を強化するAI まだ初期の使用中ですが、AIシステムは食品の準備にますます使用されています。 AI駆動型のロボットは、ハンバーガーの製造、SAの組み立てなど、食品の準備タスクを自動化するためにキッチンで使用されています

Pythonネームスペースと可変スコープに関する包括的なガイドPythonネームスペースと可変スコープに関する包括的なガイドApr 12, 2025 pm 12:00 PM

導入 Python関数における変数の名前空間、スコープ、および動作を理解することは、効率的に記述し、ランタイムエラーや例外を回避するために重要です。この記事では、さまざまなASPを掘り下げます

ビジョン言語モデル(VLM)の包括的なガイドビジョン言語モデル(VLM)の包括的なガイドApr 12, 2025 am 11:58 AM

導入 鮮やかな絵画や彫刻に囲まれたアートギャラリーを歩くことを想像してください。さて、各ピースに質問をして意味のある答えを得ることができたらどうでしょうか?あなたは尋ねるかもしれません、「あなたはどんな話を言っていますか?

MediaTekは、Kompanio UltraとDimenity 9400でプレミアムラインナップをブーストしますMediaTekは、Kompanio UltraとDimenity 9400でプレミアムラインナップをブーストしますApr 12, 2025 am 11:52 AM

製品のケイデンスを継続して、今月MediaTekは、新しいKompanio UltraやDimenity 9400を含む一連の発表を行いました。これらの製品は、スマートフォン用のチップを含むMediaTekのビジネスのより伝統的な部分を埋めます

今週のAIで:Walmartがファッションのトレンドを設定する前に設定します今週のAIで:Walmartがファッションのトレンドを設定する前に設定しますApr 12, 2025 am 11:51 AM

#1 GoogleはAgent2Agentを起動しました 物語:月曜日の朝です。 AI駆動のリクルーターとして、あなたはより賢く、難しくありません。携帯電話の会社のダッシュボードにログインします。それはあなたに3つの重要な役割が調達され、吟味され、予定されていることを伝えます

生成AIは精神障害に会います生成AIは精神障害に会いますApr 12, 2025 am 11:50 AM

私はあなたがそうであるに違いないと思います。 私たちは皆、精神障害がさまざまな心理学の用語を混ぜ合わせ、しばしば理解できないか完全に無意味であることが多い、さまざまなおしゃべりで構成されていることを知っているようです。 FOを吐き出すために必要なことはすべてです

プロトタイプ:科学者は紙をプラスチックに変えますプロトタイプ:科学者は紙をプラスチックに変えますApr 12, 2025 am 11:49 AM

今週公開された新しい研究によると、2022年に製造されたプラスチックの9.5%のみがリサイクル材料から作られていました。一方、プラスチックは埋め立て地や生態系に積み上げられ続けています。 しかし、助けが近づいています。エンジンのチーム

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

mPDF

mPDF

mPDF は、UTF-8 でエンコードされた HTML から PDF ファイルを生成できる PHP ライブラリです。オリジナルの作者である Ian Back は、Web サイトから「オンザフライ」で PDF ファイルを出力し、さまざまな言語を処理するために mPDF を作成しました。 HTML2FPDF などのオリジナルのスクリプトよりも遅く、Unicode フォントを使用すると生成されるファイルが大きくなりますが、CSS スタイルなどをサポートし、多くの機能強化が施されています。 RTL (アラビア語とヘブライ語) や CJK (中国語、日本語、韓国語) を含むほぼすべての言語をサポートします。ネストされたブロックレベル要素 (P、DIV など) をサポートします。

SecLists

SecLists

SecLists は、セキュリティ テスターの究極の相棒です。これは、セキュリティ評価中に頻繁に使用されるさまざまな種類のリストを 1 か所にまとめたものです。 SecLists は、セキュリティ テスターが必要とする可能性のあるすべてのリストを便利に提供することで、セキュリティ テストをより効率的かつ生産的にするのに役立ちます。リストの種類には、ユーザー名、パスワード、URL、ファジング ペイロード、機密データ パターン、Web シェルなどが含まれます。テスターはこのリポジトリを新しいテスト マシンにプルするだけで、必要なあらゆる種類のリストにアクセスできるようになります。

EditPlus 中国語クラック版

EditPlus 中国語クラック版

サイズが小さく、構文の強調表示、コード プロンプト機能はサポートされていません

SublimeText3 Linux 新バージョン

SublimeText3 Linux 新バージョン

SublimeText3 Linux 最新バージョン

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール