【Bedrock×Lambda】高精度なハイブリッド検索RAGをサーバレスで実装（Slack連携も可）

# はじめに

近年、**大規模言語モデル（LLM）** の発展により、LLMを活用する機会が増加しています。
その中でも、LLMを組み込んだ仕組みの一つとして、**RAG（Retrieval-Augmented Generation）** が注目を集めています。

本記事では、はじめに、**検索精度を向上させたRAGアーキテクチャ**を紹介します。
次に、それを**AWS上で実装する方法**について紹介します。

本記事で紹介したアーキテクチャの実装に用いるソースコードはGitHubで公開しています。

https://github.com/Naoki0513/hybrid-rag-container

# 検索精度を向上させたRAGアーキテクチャ

## RAGの概要と検索手法

RAGの用途としては、社内文書など非公開ドキュメントを読み込ませ、そこから回答できる社内専用AIチャットボットなどが考えられます。

そのため、RAGの精度向上のためには、ナレッジベースから検索する際に必要なドキュメントを的確に取得できるかが重要な要素の一つとなります。

RAGにおける検索手法には、様々な手法が使われています。ここでは、いくつかの手法の特徴について解説します。

### ベクトル検索

**ベクトル検索**は、検索クエリと検索対象ドキュメントの意味合いが近い文章を取得する手法です。
検索処理では、**埋め込みモデル**を用いてクエリと検索対象ドキュメントを意味を表すベクトルに変換し、数学的処理により意味の近いものを取得します。
RAGにおいてはこの手法が広く使われています。

しかし、社内文書などのパブリックに公開されていない独自の単語やフレーズが頻出するドキュメントの場合、埋め込みモデルが単語を正しく理解できず、ベクトル化の精度が低下する可能性があります。

### キーワード検索

**キーワード検索**とは、文字列の一致や、単語の出現頻度などを比較して検索する手法です。
この手法を使えば、ベクトル検索で懸念される独自の単語やフレーズが含まれるドキュメントも検索でヒットさせることができます。

ただし、キーワード検索だけでは、必ずしも意味合いの近いドキュメントが上位にランクされるとは限らないという問題があります。

### ハイブリッド検索

**ハイブリッド検索**とは、その名の通り、ベクトル検索やキーワード検索など、他にもそれ以外の検索手法などを組み合わせた検索手法の総称であり、様々な検索手法が存在します。
複数の検索結果を組み合わせる手法の1つとして、**RRF（Reciprocal Rank Fusion）** というアルゴリズムがあります。
RRFは複数のランク結果を統合してさらなるランク結果を生成します。

しかし、この手法の場合、個々のスコアの影響を受けやすく、どちらか片方のスコアが低い結果となった場合、目的のドキュメントを取得することが困難になるなどの課題があります。

### メタデータによるフィルタリング

ドキュメントを検索する前に、ドキュメントにメタデータを付与し、カテゴリーやキーワードなどであらかじめフィルタリングした状態で検索する方法も考えられます。
これにより、検索対象を絞ることができるため、精度が向上する可能性があります。

ただし、ドキュメントにメタデータを付与するために、データ変換処理をする必要があったり、それ専用にフィルタリング機能をアプリケーションに実装しなければいけないなど、通常よりも実装コストが高くなる可能性があります。

## 提案するRAGアーキテクチャ

上記課題を解決するために、以下のRAGアーキテクチャを提案します。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/1e4670ef-6b4d-3f89-5205-c92cc4f06b6e.png)

各処理の流れと実装方法を説明します。

### User Question ~ Keyword Search (BM25)

まず、ユーザーの質問文を[LLM (Claude 3 haiku)](https://www.anthropic.com/)に渡し、重要なキーワードを抽出します。
その後、抽出されたキーワードを用いて、関連するドキュメントを検索します。

ドキュメントの[トークナイズ](https://en.wikipedia.org/wiki/Lexical_analysis#Tokenization)（分かち書き）には、[Sudachi](https://www.mlab.im.dendai.ac.jp/~yamada/ir/MorphologicalAnalyzer/Sudachi.html)を採用しました。
検索には、[Amazon OpenSearchなどでも使われている](https://opensearch.org/docs/latest/search-plugins/keyword-search/)[BM25](https://python.langchain.com/docs/integrations/retrievers/bm25/)アルゴリズムを採用しました。

これにより、質問文と関連するカテゴリーのドキュメントに絞り込むことができます。
キーワード検索の特徴を活かし、社内文書などの独自の単語やフレーズが含まれるドキュメントも取得できるようにしています。

### Vector Search (FAISS)

BM25で絞り込まれたドキュメントから、質問文と意味が近い情報のみにさらに絞り込むために、[FAISS](https://python.langchain.com/docs/integrations/vectorstores/faiss/)というOSSのベクターストアを用いたベクトル検索を行います。

さらに、ベクトル検索の精度を上げるため、[LangChainのParentDocumentRetriever](https://python.langchain.com/docs/modules/data_connection/retrievers/parent_document_retriever/)を用いて、検索対象のチャンクを小さく、取得するチャンクを大きくする再帰検索を採用しました。

:::note info
[研究結果](https://arxiv.org/pdf/2310.06839.pdf)によると、プロンプトに入力するドキュメント数が増加すると回答精度が悪化する傾向や、重要ドキュメントがプロンプトの中間に位置する場合でも回答精度が悪化する傾向あることが分かっています。
そのため、今回のように一度カテゴリーで絞ったドキュメント群から再ランクすることが精度向上のためには重要な処理となると考えています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/621196f1-f992-1a6c-b931-e5f293797cbb.png)
:::

:::note info
この実装では、受け取ったドキュメントを埋め込みモデルで再ランクしています。
今回はAWS上での実装を試みており、そのうちAmazon Bedrockでは再ランクモデルが提供されていないため、埋め込みモデルを用いて実装しています。
:::

### LLM (Claude 3 Sonnet)

最後に、抽出された情報から回答文を生成するために、Anthropic社の[Claude 3 Sonnet](https://www.anthropic.com/)を採用しました。

## アーキテクチャのまとめ

今回提案したRAGアーキテクチャは、**キーワード検索とベクトル検索を組み合わせることで、各検索手法の長所を活かし、短所を補完するように設計されています。**

まず、質問文から抽出したキーワードを用いたキーワード検索により、関連するカテゴリーのドキュメントを絞り込みます。続けて、絞り込まれたドキュメントをベクトル検索することで、**意味的な関連性の高いドキュメントを抽出**します。

この**段階的な処理**により、**各検索手法の長所を活かしつつ、個々の検索スコアのマイナスな影響を抑えた結果を得ることができます。**

# AWS上での実装方法

上記で説明したRAGアーキテクチャをAWS上で実装し、Slack botとして利用する方法を説明します。ぜひ、この手順を参考に体験していただければと思います。

## AWSアーキテクチャ概要

AWS上で実装したRAGアーキテクチャからSlackと連携する構成は以下の通りです。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/f155c923-33f3-9a01-6e9a-434275b04252.png">

1. [ECR](https://aws.amazon.com/jp/ecr/)にRAGに読み込ませたいドキュメントと、アプリやライブラリをコンテナイメージとして保管
2. ECRに保管したコンテナイメージを[Lambda](https://aws.amazon.com/jp/lambda/)で実行しSlack連携

このアーキテクチャは**サーバーレス**で構成されており、月額利用料も使った分だけの課金となるため、コスト面でもメリットがあります。

## 実装手順

### 1. ECRプライベートリポジトリ作成

AWSマネジメントコンソールにログインし、ECRを選択します。そこで、プライベートリポジトリを新規作成します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/483e0855-7be4-f8ee-757e-377e45f9599a.png" width="500">

### 2. コンテナイメージ作成、ECRリポジトリにpush

[AWS CloudShell](https://aws.amazon.com/jp/cloudshell/)を開き、以下のコマンドを実行して、冒頭で紹介したgithubリポジトリをクローンします。

```bash
git clone https://github.com/Naoki0513/hybrid-rag-container.git
```

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/b8a28f5a-fd61-8e87-accf-37129de66686.png">

次に、クローンしたリポジトリのディレクトリに移動します。

```bash
cd hybrid-rag-container/
```

コンテナイメージを作成し、ECRリポジトリにプッシュするには、ECRリポジトリのコンソール画面から表示されるコマンドを順番に実行します。
作成したECRリポジトリ→プッシュコマンドの表示から、コマンドをコピーして CloudShell で実行します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/7709cd4b-615a-2f1b-e652-2783c03dbbf9.png" width="500">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/56786f29-f6d5-0952-1dc6-d549ac4991d9.png" width="500">

ECRリポジトリにイメージが追加されていることを確認します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/dab2eecb-c895-5945-c793-cff9ef1e1656.png" width="500">

:::note warn

コンテナイメージ作成中、CloudShellの容量制限に引っかかる可能性があります。その場合は、CloudShellの中身を空にするか、他の環境([AWS Cloud9](https://aws.amazon.com/jp/cloud9/)など)で実行してください。
:::

:::note info
githubリポジトリの中身のうち、Lambdaの実行ソースである`app.py`と、LLMに読み込ませているドキュメントのリストである`documents.json`の中身を紹介します。

<details><summary>app.py</summary>

```python
 import base64
import boto3
import datetime
import json
import os
import pytz
import re
from botocore.exceptions import ClientError
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.retrievers import RePhraseQueryRetriever
from langchain.schema import Document, HumanMessage
from langchain.schema.embeddings import Embeddings
from langchain.storage import InMemoryStore
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain.vectorstores.faiss import FAISS
from langchain_community.chat_models import BedrockChat
from langchain.retrievers import ParentDocumentRetriever
from langchain_community.embeddings import BedrockEmbeddings
from langchain_community.llms import Bedrock
from langchain_community.retrievers import BM25Retriever
from slack_bolt import App
from slack_bolt.adapter.aws_lambda import SlackRequestHandler
from sudachipy import dictionary, tokenizer
from typing import List

SLACK_BOT_TOKEN = os.environ["SLACK_BOT_TOKEN"]
SLACK_SIGNING_SECRET = os.environ["SLACK_SIGNING_SECRET"]
BM25_TOP_K = int(os.environ["BM25_TOP_K"])
VECTORSTORE_TOP_K = int(os.environ["VECTORSTORE_TOP_K"])
LLM_MODEL_ID = os.environ["LLM_MODEL_ID"]
LLM_PROMPT = os.environ["LLM_PROMPT"]
EMBEDDING_MODEL_ID = "cohere.embed-multilingual-v3"
QUERY_GENERATOR_MODEL_ID = "anthropic.claude-3-haiku-20240307-v1:0"
PARENT_CHUNK_SIZE = 20000 
CHILD_CHUNK_SIZE = 100

app = App(
	token=SLACK_BOT_TOKEN,
	signing_secret=SLACK_SIGNING_SECRET,
	process_before_response=True,
)

def generate_word_ngrams(text: str, i: int, j: int, binary: bool = False) -> List[tuple]:
	"""
	文字列を単語に分割し、指定した文字数のn-gramを生成する関数。
	"""
	try:
		tokenizer_obj = dictionary.Dictionary(dict="full").create()
		mode = tokenizer.Tokenizer.SplitMode.A

		text_splitter = RecursiveCharacterTextSplitter(chunk_size=20000, chunk_overlap=20)
		texts = text_splitter.split_text(text)
		
		tokens = []
		for chunk in texts:
			chunk_tokens = tokenizer_obj.tokenize(chunk, mode)
			tokens.extend(chunk_tokens)
			
		words = [token.surface() for token in tokens]
		
		ngrams = []
		for n in range(i, j + 1):
			for k in range(len(words) - n + 1):
				ngram = tuple(words[k:k + n])
				ngrams.append(ngram)
				
		if binary:
			ngrams = list(set(ngrams))
			
		return ngrams
	
	except Exception as e:
		print(f"Error in generate_word_ngrams: {str(e)}")
		return []

def preprocess_func(text: str) -> List[str]:
	print(f"Preprocessing text: {text}")
	return generate_word_ngrams(text, 1, 1, True)

def create_retriever(texts: List[str]) -> BM25Retriever:
	"""
	BM25検索器を作成する関数。
	"""
	print("Creating BM25 retriever")
	return BM25Retriever.from_texts(texts, preprocess_func=preprocess_func, k=BM25_TOP_K)

def create_query_generator() -> LLMChain:
	"""
	質問文からキーワードを抽出するためのLLMチェーンを作成する関数。
	"""  
	print("Creating query generator LLM chain")
	
	llm = BedrockChat(model_id=QUERY_GENERATOR_MODEL_ID, model_kwargs={"temperature": 0})
	prompt = PromptTemplate(
		input_variables=['question'],
		template="""
<prompt>
<task>
入力された文章から、以下の基準に従って重要な単語を抽出し、抽出された単語をスペースで区切って出力してください:
<criteria>
1. 固有名詞（人名、地名、組織名など） 
2. 専門用語や業界特有の語彙
3. 頻出する名詞や動詞（ただし、「こと」「もの」などの一般的な名詞は除く）
4. カタカナ語や外来語
5. 文章の主題に関連する語彙  
</criteria>
</task>

<example>
<input>
CodeAnalyzerは、ソースコードの静的解析ツールです。コーディング規約の遵守状況をチェックし、潜在的なバグや脆弱性を検出します。複数のプログラミング言語に対応しており、開発チームのコードの品質管理を強力にサポートします。
</input>

<output>
CodeAnalyzer ソースコード 静的解析ツール コーディング規約 遵守状況 チェック バグ 脆弱性 検出 プログラミング言語 対応 開発チーム コード品質管理 サポート
</output>  
</example>

<input>
{question}
</input>

<output>
入力された文章から、以下の基準に従って重要な単語を抽出します:
</output>

</prompt>
"""
	)
	chain = LLMChain(llm=llm, prompt=prompt)
	return chain

def get_empty_faiss_vectorstore(embedding: Embeddings, dim: int = None, **kwargs) -> FAISS:
	print("Creating empty FAISS vector store")
	
	dummy_text, dummy_id = "1", 1
	
	if not dim:
		dummy_emb = embedding.query(dummy_text)  
	else:
		dummy_emb = [0] * dim
		
	vectorstore = FAISS.from_embeddings([(dummy_text, dummy_emb)], embedding, ids=[dummy_id], **kwargs)
	vectorstore.delete([dummy_id])
	return vectorstore

def vectorize(relevant_documents: List[Document]) -> ParentDocumentRetriever:
	"""
	BM25で絞り込まれたドキュメントをベクトル化し、FAISSベクトルストアに格納する関数。
	"""
	print("Vectorizing relevant documents")
	
	embeddings = BedrockEmbeddings(model_id=EMBEDDING_MODEL_ID)
	ID_KEY = "doc_id"
	vectorstore = get_empty_faiss_vectorstore(embeddings, 1024) 
	store = InMemoryStore()
	
	parent_splitter = RecursiveCharacterTextSplitter(chunk_size=PARENT_CHUNK_SIZE)
	child_splitter = RecursiveCharacterTextSplitter(chunk_size=CHILD_CHUNK_SIZE, chunk_overlap=20)

	retriever = ParentDocumentRetriever(
		vectorstore=vectorstore,
		docstore=store,
		child_splitter=child_splitter,
		parent_splitter=parent_splitter,
		id_key=ID_KEY,
		search_kwargs={"k": VECTORSTORE_TOP_K}  
	)
	ids = [str(i) for i in range(len(relevant_documents))]
	retriever.add_documents(relevant_documents, ids=ids)
	return retriever
	
def generate_llm_response(page_content: str, question: str) -> str:
	"""
	関連ドキュメントとユーザーの質問文を組み合わせてLLMにプロンプトを送信し、最終的な回答を生成する関数。
	"""
	print("Generating LLM response")
	
	prompt_text = LLM_PROMPT + "\n" + page_content
	
	llm = BedrockChat(
		model_id=LLM_MODEL_ID,
		model_kwargs={"temperature": 0}  
	)
	
	llm_response = llm.predict(text=prompt_text + "\n" + question)
	return llm_response

def get_json_from_file(file_path: str) -> dict:
	"""
	JSONファイルからデータを読み込む関数。
	"""
	print(f"Retrieving JSON data from file: {file_path}")
	
	try:
		with open(file_path, 'r', encoding='utf-8') as file:
			json_data = json.load(file)
		return json_data
	except Exception as e:
		print(f"Error in get_json_from_file: {str(e)}")
		return None

def process_question(question: str) -> str:
    """
    一連の処理を統合し、ユーザーの質問に対する最終的な回答を生成する関数。
    """
    print(f"Processing question: {question}")
    
    file_path = '/var/task/documents.json'
    
    print("Retrieving JSON data from file...")
    json_data = get_json_from_file(file_path)

    if json_data is None:
        return "Failed to retrieve JSON data."
    
    split_data = json_data["chunk"]
    if not split_data:
        return "Failed to split JSON data."
    
    texts = [json.dumps(item, ensure_ascii=False) for item in split_data]
    
    retriever = create_retriever(texts)
    
    query_generator = create_query_generator()
    
    rephrase_retriever = RePhraseQueryRetriever(retriever=retriever, llm_chain=query_generator)
    
    relevant_documents = rephrase_retriever.get_relevant_documents(question)
    print("Relevant documents:")
    for doc in relevant_documents:
        print(doc)
    
    generated_query = rephrase_retriever.llm_chain.invoke(question)
    print("Generated query from LLM:")
    print(generated_query)
    
    retriever = vectorize(relevant_documents)
    
    final_docs = retriever.get_relevant_documents(question)
    print("Final documents:")  
    for doc in final_docs:
        print(doc)
    
    if final_docs:
        page_content = "\n".join([doc.page_content for doc in final_docs])
        llm_response = generate_llm_response(page_content, question)
        return llm_response
    else:
        return "関連する回答が見つかりませんでした。"

def lambda_handler(event, context):
	"""
	Slackからのメンション付きの返信を受けて回答する処理を行う関数。
	"""
	print(f"Received event: {json.dumps(event)}")

	headers = event.get('headers', {})

	if 'x-slack-retry-num' in headers:
		print("Detected x-slack-retry-num. Exiting to avoid processing a retry from Slack.")
		return {
			"statusCode": 200,
			"body": json.dumps({"message": "Request identified as a retry, thus ignored."})  
		}

	if event.get('isBase64Encoded', False):
		body = base64.b64decode(event['body'])
	else:
		body = event['body']

	slack_event_json = json.loads(body)

	if "challenge" in slack_event_json:
		challenge = slack_event_json['challenge']
		return {
			"statusCode": 200,
			"headers": {"Content-Type": "application/json"},
			"body": json.dumps({"challenge": challenge})
		}

	if "event" in slack_event_json:
		slack_event = slack_event_json['event']

		if slack_event['type'] == "app_mention":
			channel = slack_event['channel']
			text = slack_event['text']
			thread_ts = slack_event.get('thread_ts', slack_event['ts'])

			text_without_mention = re.sub(r"^<@(.+?)>", "", text).strip()

			app.client.chat_postMessage(
				channel=channel,
				thread_ts=thread_ts,
				text="お問い合わせありがとうございます。回答を準備中ですので、少々お待ちください。"
			)

			final_response = process_question(text_without_mention)

			app.client.chat_postMessage(
				channel=channel,
				thread_ts=thread_ts,
				text=final_response
			)

			return {
				"statusCode": 200,
				"body": json.dumps({"message": "Success"})
			}

	return {
		"statusCode": 200,
		"body": json.dumps({"message": "Ignored"})
	}
 ```
</details>

`app.py`は、Slackからのメンション付きメッセージを受け取り、一連の処理を実行してLLMによる回答を生成し、Slackに返信するLambda関数のソースコードです。
前章で説明した各処理が関数化され、`process_question`関数内で順次呼び出されている流れを追うことができます。

<details><summary>documents.json</summary>
  
```json
  {
"chunk": [
"製品名: スマートスピーカー「スマートサウンド」\n\n製品概要:\nスマートサウンドは、AIアシスタント機能と高品質なオーディオ性能を兼ね備えた、次世代のスマートスピーカーです。音声コマンドで情報検索や家電コントロールが可能。また、360度全方位に広がる臨場感あるサウンドで、音楽を楽しむこともできます。\n\n主な特徴:\n1. AIアシスタント: 音声コマンドで、天気や交通情報の確認、スケジュール管理、オンラインショッピングなどが可能です。\n2. マルチルーム再生: 複数のスマートサウンドを同期させ、家中で同じ音楽を再生できます。\n3. 高品質オーディオ: 大口径ウーファーと高音域用ツイーターを搭載し、パワフルで高解像度のサウンドを実現します。\n4. スマートホーム連携: 対応する家電製品と連携し、音声で操作が可能。照明やエアコンなどを制御できます。\n5. コンパクトデザイン: コンパクトな筐体ながら、迫力のある音響性能を発揮。インテリアにもマッチするシンプルなデザインです。\n\n同梱品:\n- スマートサウンド本体\n- 電源アダプター\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@smartsound.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: 空気清浄機「エアリーン」\n\n製品概要:\nエアリーンは、強力な清浄能力と省エネ性能を両立した、スマート空気清浄機です。PM2.5やホコリ、花粉、ニオイなどを素早く除去し、いつでも快適な空気環境を保ちます。また、静音設計により、就寝時や勉強時にも使用できます。\n\n主な特徴:\n1. 高性能HEPAフィルター: 0.3μmの微粒子を99.97%以上除去する、高性能HEPAフィルターを採用。アレルギー物質や有害物質を強力に取り除きます。\n2. スマートセンシング: 搭載されたセンサーが空気質を自動で検知し、最適な運転モードに自動調整。省エネと高い清浄力を実現します。\n3. ワイドな空気循環: 360度全方向に空気を循環させる設計により、部屋の隅々まで効率的に浄化します。\n4. 静音設計: 運転音を抑えた静音設計。就寝時や勉強時など、様々なシーンで快適に使用できます。\n5. スマートフォン連携: 専用アプリから、空気質のモニタリングや運転設定の変更が可能。外出先からでも、いつでも空気環境を管理できます。\n\n同梱品:\n- エアリーン本体\n- HEPAフィルター\n- 活性炭フィルター\n- 電源ケーブル\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@aireen.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: 冷蔵庫「スマートクール」\n\n製品概要:\nスマートクールは、最新のインバーター技術と省エネ設計を採用した、高性能冷蔵庫です。大容量ながら省スペースを実現し、スマートフォンとの連携により、食材管理や冷蔵庫の状態確認が可能。スタイリッシュなデザインで、キッチンをより洗練された空間に演出します。\n\n主な特徴:\n1. インバーター制御: インバーター制御により、コンプレッサーの回転数を最適化。省エネ性と静音性を高次元で両立します。\n2. スマートフォン連携: 専用アプリで、食材管理や冷蔵庫内の温度・湿度の確認が可能。買い物リストの作成や賞味期限の通知も行えます。\n3. 高い収納力: 独自の空間設計により、大容量ながらコンパクトなサイズを実現。庫内のレイアウトも自由に変更できます。\n4. 真空チルドルーム: 真空状態で食材を保存する「真空チルドルーム」を搭載。食材の鮮度を長く保ち、栄養価の損失を防ぎます。\n5. おしゃれなデザイン: ステンレスとガラスを採用した、シンプルでスタイリッシュなデザイン。キッチンの雰囲気を高める、インテリア性の高い冷蔵庫です。\n\n同梱品:\n- スマートクール本体\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@smartcool.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から5年間の製品保証が付いております。",
"製品名: ロボット芝刈り機「ガーデンメイト」\n\n製品概要:\nガーデンメイトは、自動で芝刈りを行う、スマートなロボット芝刈り機です。高度なセンシング技術により、芝生の状態を検知し、最適な刈り高さで芝刈りを行います。スケジュール設定や操作は、スマートフォンアプリから簡単に行えます。\n\n主な特徴:\n1. 自動芝刈り: 芝生の状態をセンサーで検知し、最適な刈り高さで自動的に芝刈りを行います。\n2. スマートナビゲーション: 芝生の形状を学習し、効率的な刈り取りルートを自動で生成。隅々まで漏れなく芝刈りを行います。\n3. スマートフォン連携: 専用アプリから、芝刈りスケジュールの設定や、ガーデンメイトの現在位置の確認が可能です。\n4. 安全設計: 刈り刃に接触すると自動で停止する、安全設計を採用。小さなお子様やペットがいる家庭でも安心して使用できます。\n5. 防水・防塵設計: 雨天時でも動作可能な防水・防塵設計。屋外での使用に適しています。\n\n同梱品:\n- ガーデンメイト本体\n- 充電ステーション\n- 電源アダプター\n- 予備の刃\n- 取扱説明書\n- 保証書\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@gardenmate.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。",
"製品名: スマートロック「セキュアエントリー」\n\n製品概要:\nセキュアエントリーは、スマートフォンやICカードで解錠・施錠ができる、次世代のスマートロックシステムです。面倒な鍵の持ち歩きが不要になり、家族やゲストの出入りもスムーズに管理できます。高いセキュリティ性能と使いやすさを兼ね備えた、新しいドアロックソリューションです。\n\n主な特徴:\n1. スマートフォン連携: 専用アプリからワンタップで解錠・施錠が可能。家族やゲストにも、アプリを通じて鍵の共有ができます。\n2. ICカード対応: ICカードをかざすだけで、ドアの解錠・施錠が可能。カードの追加・削除も、アプリから簡単に行えます。\n3. 高いセキュリティ性: 最新の暗号化技術を採用し、不正アクセスを防ぐ高いセキュリティ性能を実現しています。\n4. 履歴管理: アプリから、誰がいつドアを開閉したかを確認可能。不要なアクセス履歴は、随時削除できます。\n5. 簡単インストール: 既存のドアに、簡単に取り付けが可能。専門的な知識は不要で、どなたでも扱いやすい設計です。\n\n同梱品:\n- セキュアエントリー本体\n- ICカード ×2\n- 取付用ネジセット\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@secureentry.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。",
"製品名: ウェアラブルカメラ「ライフレコーダー」\n\n製品概要:\nライフレコーダーは、日常生活の思い出を手軽に記録できる、ウェアラブルカメラです。小型・軽量ボディに、高画質撮影と大容量バッテリーを搭載。装着したまま、ワンタッチで撮影が開始できます。旅行やスポーツ、イベントなど、様々なシーンで活躍します。\n\n主な特徴:\n1. 高画質撮影: 4K解像度での動画撮影と、1200万画素の静止画撮影に対応。美しい映像と鮮明な写真が撮れます。\n2. 手ぶれ補正: 高性能な手ぶれ補正機能を搭載。アクティブなシーンでも、ブレの少ない映像を撮影できます。\n3. 大容量バッテリー: 最大3時間の連続撮影が可能な、大容量バッテリーを内蔵。充電切れの心配なく、思う存分撮影を楽しめます。\n4. 防水・防塵設計: IP68相当の防水・防塵性能を実現。水中での撮影も可能で、アウトドアシーンに最適です。\n5. ワイヤレス転送: Wi-Fi接続により、撮影した映像をスマートフォンに簡単に転送。SNSへの投稿やバックアップも、スムーズに行えます。\n\n同梱品:\n- ライフレコーダー本体\n- 充電用USBケーブル\n- マウントアクセサリーセット\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@liferecorder.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマートスケール「ヘルスメーター」\n\n製品概要:\nヘルスメーターは、体重だけでなく、体脂肪率や筋肉量、BMIなど、様々な身体データを計測できる、スマート体重計です。専用アプリとの連携により、データの管理や健康状態の分析が可能。美しいデザインで、インテリアとしても最適です。\n\n主な特徴:\n1. 多項目測定: 体重、体脂肪率、筋肉量、BMI、体内年齢など、多項目を測定。健康状態を多角的に把握できます。\n2. スマートフォン連携: Bluetooth接続により、専用アプリへデータを自動送信。グラフや表で、経時的な変化を確認できます。\n3. 多人数対応: 最大8人までのユーザー登録が可能。家族で共有しても、個人のデータを独立して管理できます。\n4. 高精度センサー: 4つの高精度センサーで、安定した測定値を実現。50gの単位で、体重の変化を正確に知ることができます。\n5. スリムデザイン: 薄型でスタイリッシュなデザイン。インテリアに自然に溶け込み、バスルームや寝室に最適です。\n\n同梱品:\n- ヘルスメーター本体\n- 単4乾電池 ×4本\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@healthmeter.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: ワイヤレスプレゼンター「スマートポインター」\n\n製品概要:\nスマートポインターは、プレゼンテーションやリモート操作に最適な、ワイヤレスプレゼンターです。レーザーポインター、ワイヤレスマウス、プレゼンテーション操作機能を1台に集約。直感的な操作で、スムーズなプレゼンテーションを実現します。\n\n主な特徴:\n1. レーザーポインター: 明るく見やすいグリーンレーザーを採用。広い会場でも、ポイントを明確に示せます。\n2. ワイヤレスマウス: 空中でのマウス操作が可能。カーソルの移動や、クリック、スクロールなどが行えます。\n3. プレゼンテーション操作: ページ送りや、ブラックスクリーン、音量調整など、プレゼンテーションに必要な機能を搭載。\n4. 長距離通信: 最大30mの長距離通信に対応。大きな会場でも、安定した操作が可能です。\n5. 充電式バッテリー: 充電式のリチウムイオンバッテリーを内蔵。1回の充電で、最大20時間の連続使用が可能です。\n\n同梱品:\n- スマートポインター本体\n- USB充電ケーブル\n- レシーバー\n- キャリングケース\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@smartpointer.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマートウォッチ「ウェアラブルプロ」\n\n製品概要:\nウェアラブルプロは、健康管理とスマートフォンとの連携に特化した最新のスマートウォッチです。高精度の心拍数モニタリング、GPS機能、防水性能を備え、日常生活からスポーツシーンまで幅広く活躍します。\n\n主な特徴:\n1. 24時間体温測定: 内蔵された高感度センサーにより、24時間リアルタイムで体温を測定し、健康状態を管理します。\n2. スマートフォン連携: Bluetooth接続により、通知の受信、音楽再生のコントロール、カメラのリモートシャッターなどスマートフォンと連携した機能が利用できます。\n3. 長時間バッテリー: 最大14日間の長時間バッテリー駆動を実現。充電の手間を最小限に抑えます。\n4. 多彩なウォッチフェイス: 100種類以上のウォッチフェイスから選択可能。シーンや好みに合わせてカスタマイズできます。\n5. 防水性能: 5気圧防水に対応し、水泳や入浴時にも装着可能です。\n\n同梱品:\n- ウェアラブルプロ本体\n- 充電ケーブル\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@wearablepro.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: ロボット掃除機「クリーンボット」\n\n製品概要:\nクリーンボットは、最新のナビゲーション技術と強力な吸引力を搭載した、スマートなロボット掃除機です。アプリとの連携により、スケジュール設定やリモート操作が可能。お客様の生活スタイルに合わせて、快適で清潔な住環境を提供します。\n\n主な特徴:\n1. スマートナビゲーション: 先進のセンサーとAI技術により、効率的な清掃ルートを自動で計画し、隅々まで漏れなく掃除します。\n2. 強力な吸引力: 最大2000Paの強力な吸引力で、微細なホコリやペットの毛までしっかりと吸い取ります。\n3. アプリ連携: 専用アプリから、掃除スケジュールの設定、清掃状況の確認、リモート操作などが可能です。\n4. 長時間稼働: 大容量バッテリーを搭載し、最大90分の連続稼働が可能。広い住空間もしっかりとカバーします。\n5. 自動充電: バッテリー残量が少なくなると、自動的に充電ステーションに戻り、充電を開始します。\n\n同梱品:\n- クリーンボット本体\n- 充電ステーション\n- 電源アダプター\n- 交換用フィルター\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@cleanbot.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: ワイヤレスイヤホン「オーディオビート」\n\n製品概要:\nオーディオビートは、高音質と快適な装着感を追求した、ワイヤレス・ノイズキャンセリングイヤホンです。最新のBluetoothテクノロジーにより、安定した接続と低遅延を実現。音楽や通話を、より自由に、よりクリアに楽しめます。\n\n主な特徴:\n1. ハイレゾ対応: 高解像度のオーディオコーデックに対応し、豊かで臨場感のあるサウンドを再生します。\n2. ノイズキャンセリング: アクティブノイズキャンセリング機能により、周囲の騒音を最大90%低減。音楽に没頭できる環境を提供します。\n3. 快適な装着感: 人間工学に基づいて設計されたイヤーピースにより、長時間の使用でも快適な装着感が持続します。\n4. タッチコントロール: イヤホン本体のタッチセンサーで、音楽再生や通話の操作が可能。スマートフォンを取り出す必要がありません。\n5. 防水性能: IPX4相当の防水性能を備え、汗や小雨程度の水滴にも耐えられます。\n\n同梱品:\n- オーディオビート本体\n- 充電ケース\n- USB-C充電ケーブル\n- イヤーピース（S/M/L）\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@audiobeat.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: ロボット芝刈り機「ガーデンメイト」\n\n製品概要:\nガーデンメイトは、自動で芝刈りを行う、スマートなロボット芝刈り機です。高度なセンシング技術により、芝生の状態を検知し、最適な刈り高さで芝刈りを行います。スケジュール設定や操作は、スマートフォンアプリから簡単に行えます。\n\n主な特徴:\n1. 自動芝刈り: 芝生の状態をセンサーで検知し、最適な刈り高さで自動的に芝刈りを行います。\n2. スマートナビゲーション: 芝生の形状を学習し、効率的な刈り取りルートを自動で生成。隅々まで漏れなく芝刈りを行います。\n3. スマートフォン連携: 専用アプリから、芝刈りスケジュールの設定や、ガーデンメイトの現在位置の確認が可能です。\n4. 安全設計: 刈り刃に接触すると自動で停止する、安全設計を採用。小さなお子様やペットがいる家庭でも安心して使用できます。\n5. 防水・防塵設計: 雨天時でも動作可能な防水・防塵設計。屋外での使用に適しています。\n\n同梱品:\n- ガーデンメイト本体\n- 充電ステーション\n- 電源アダプター\n- 予備の刃\n- 取扱説明書\n-保証書\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@gardenmate.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。",
"製品名: ワイヤレス充電器「チャージスタンド」\n\n製品概要:\nチャージスタンドは、Qi規格に対応した、ワイヤレス充電器です。スマートフォンを置くだけで、簡単に充電が開始されます。コンパクトながら高速充電に対応し、卓上をすっきりと保ちつつ、快適な充電環境を提供します。\n\n主な特徴:\n1. Qi規格対応: Qi規格に準拠した、ワイヤレス充電に対応。対応機種であれば、ケーブルを接続することなく充電が可能です。\n2. 高速充電: 最大15Wの高速充電に対応。急速充電に対応したスマートフォンであれば、短時間で充電が完了します。\n3. 2台同時充電: 2台のデバイスを同時に充電可能。スマートフォンとワイヤレスイヤホンなど、複数のデバイスを一度に充電できます。\n4. 過電流保護: 過電流や過熱を防ぐ、安全設計を採用。大切なデバイスを安心して充電できます。\n5. コンパクトデザイン: コンパクトなサイズながら、安定した充電性能を発揮。デスクやナイトテーブルに置いても、場所を取りません。\n\n同梱品:\n- チャージスタンド本体\n- USB-C電源ケーブル\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@chargestand.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマートロック「セキュアエントリー」\n\n製品概要:\nセキュアエントリーは、スマートフォンやICカードで解錠・施錠ができる、次世代のスマートロックシステムです。面倒な鍵の持ち歩きが不要になり、家族やゲストの出入りもスムーズに管理できます。高いセキュリティ性能と使いやすさを兼ね備えた、新しいドアロックソリューションです。\n\n主な特徴:\n1. スマートフォン連携: 専用アプリからワンタップで解錠・施錠が可能。家族やゲストにも、アプリを通じて鍵の共有ができます。\n2. ICカード対応: ICカードをかざすだけで、ドアの解錠・施錠が可能。カードの追加・削除も、アプリから簡単に行えます。\n3. 高いセキュリティ性: 最新の暗号化技術を採用し、不正アクセスを防ぐ高いセキュリティ性能を実現しています。\n4. 履歴管理: アプリから、誰がいつドアを開閉したかを確認可能。不要なアクセス履歴は、随時削除できます。\n5. 簡単インストール: 既存のドアに、簡単に取り付けが可能。専門的な知識は不要で、どなたでも扱いやすい設計です。\n\n同梱品:\n- セキュアエントリー本体\n- ICカード ×2\n- 取付用ネジセット\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@secureentry.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。",
"製品名: ポータブル電源「パワーステーション」\n\n製品概要:\nパワーステーションは、大容量バッテリーを搭載した、ポータブル電源です。停電時や災害時の非常用電源として、また、アウトドアや車中泊での電源として、幅広いシーンで活躍します。コンパクトながら大出力を実現し、様々な機器に対応。安心して電力を供給できます。\n\n主な特徴:\n1. 大容量バッテリー: 500Whの大容量リチウムイオンバッテリーを搭載。ノートパソコンなら約20回、スマートフォンなら約100回の充電が可能です。\n2. 多様な出力ポート: AC、DC、USB、Type-Cなど、多様な出力ポートを装備。様々な機器に対応し、幅広い用途で使用できます。\n3. 純正弦波出力: AC出力は、純正弦波を採用。電子機器に安定した電力を供給し、安全に使用できます。\n4. ソーラー充電対応: ソーラーパネルを接続して、太陽光で充電が可能。アウトドアでの長期使用にも対応します。\n5. 安全設計: 過充電、過放電、短絡、過熱など、様々な保護機能を搭載。安全性の高い設計で、安心して使用できます。\n\n同梱品:\n- パワーステーション本体\n- AC充電アダプター\n- カーチャージャー\n- DC変換ケーブル\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@powerstation.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。", 
"製品名: ワイヤレスプレゼンター「スマートポインター」\n\n製品概要:\nスマートポインターは、プレゼンテーションやリモート操作に最適な、ワイヤレスプレゼンターです。レーザーポインター、ワイヤレスマウス、プレゼンテーション操作機能を1台に集約。直感的な操作で、スムーズなプレゼンテーションを実現します。\n\n主な特徴:\n1. レーザーポインター: 明るく見やすいグリーンレーザーを採用。広い会場でも、ポイントを明確に示せます。\n2. ワイヤレスマウス: 空中でのマウス操作が可能。カーソルの移動や、クリック、スクロールなどが行えます。\n3. プレゼンテーション操作: ページ送りや、ブラックスクリーン、音量調整など、プレゼンテーションに必要な機能を搭載。\n4. 長距離通信: 最大30mの長距離通信に対応。大きな会場でも、安定した操作が可能です。\n5. 充電式バッテリー: 充電式のリチウムイオンバッテリーを内蔵。1回の充電で、最大20時間の連続使用が可能です。\n\n同梱品:\n- スマートポインター本体\n- USB充電ケーブル\n- レシーバー\n- キャリングケース\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@smartpointer.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。", 
"製品名: ドローン「スカイエクスプローラー」\n\n製品概要:\nスカイエクスプローラーは、初心者からプロまで幅広いユーザーに適した、高性能ドローンです。4Kカメラによる高画質撮影、安定した飛行制御、長時間飛行が可能な大容量バッテリーを搭載。様々なシーンで、空撮の楽しさを体験できます。\n\n主な特徴:\n1. 4Kカメラ: 高画質4Kカメラを搭載。美しい空撮映像を撮影できます。ジンバルによる手ぶれ補正も装備。\n2. 安定飛行: GPSとオプティカルフローセンサーにより、高い飛行安定性を実現。初心者でも、安心して操縦できます。\n3. 長時間飛行: 5000mAhの大容量バッテリーを搭載。最大30分の長時間飛行が可能です。\n4.4. インテリジェントフライトモード: ワンキー離陸/着陸、オービット、フォローミーなど、様々な自動飛行モードを搭載。\n5. 折りたたみ式設計: 携帯性に優れた、折りたたみ式設計を採用。持ち運びに便利で、どこでも空撮を楽しめます。\n\n同梱品:\n- スカイエクスプローラー本体\n- 送信機\n- バッテリー ×2\n- 充電器\n- プロペラ ×4\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@skyexplorer.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: 電動歯ブラシ「クリーンスマイル」\n\n製品概要:\nクリーンスマイルは、音波振動と高密度ブラシ毛による効果的な歯垢除去を実現した、高性能電動歯ブラシです。複数のブラッシングモードを搭載し、歯の状態に合わせたオーダーメイドのケアが可能。スマートフォンアプリとの連携で、ブラッシング状況をチェックできます。\n\n主な特徴:\n1. 音波振動: 毎分40,000回の音波振動で、歯垢を効果的に除去。手磨きでは届きにくい歯間や奥歯もしっかりとケアします。\n2. 高密度ブラシ毛: 極細の高密度ブラシ毛を採用。歯の表面や隙間に入り込み、歯垢を掻き出します。\n3. 5つのブラッシングモード: クリーン、ホワイトニング、ガムケア、センシティブ、マッサージの5つのモードを搭載。\n4. スマートフォン連携: 専用アプリと連携し、ブラッシング時間や頻度、圧力をチェック。口内の健康状態を可視化できます。\n5. 長期使用: 1回の充電で最大90日間使用可能。ブラシヘッドは3ヶ月ごとに交換が目安です。\n\n同梱品:\n- クリーンスマイル本体\n- 充電器\n- ブラシヘッド ×2\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@cleansmile.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。",
"製品名: スマートウォッチ「ウェルネスワン」\n\n製品概要:\nウェルネスワンは、健康管理に特化した高機能スマートウォッチです。心拍数、血圧、血中酸素濃度など、様々なバイタルデータをリアルタイムで測定。専用アプリで測定データを管理・分析し、日々の健康状態を把握できます。\n\n主な特徴:\n1. マルチバイタルセンシング: 心拍数、血圧、血中酸素濃度、ストレスレベルなど、様々なバイタルデータを測定します。\n2. スマートフォン連携: Bluetooth接続により、測定データを専用アプリに自動同期。グラフや表で、経時的な変化を確認できます。\n3. パーソナライズドアドバイス: 測定データを分析し、ユーザーに合わせたヘルスケアアドバイスを提供します。\n4. 長時間バッテリー: 1回の充電で最大7日間使用可能。日々の健康管理を、切れ目なくサポートします。\n5. 着け心地の良いデザイン: 軽量・薄型設計で、快適な装着感を実現。柔らかいシリコンストラップを採用しています。\n\n同梱品:\n- ウェルネスワン本体\n- 充電ケーブル\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@wellnessone.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: プロジェクター「シネマハウス」\n\n製品概要:\nシネマハウスは、家庭でも高品質な映画体験を楽しめる、コンパクトプロジェクターです。フルHD解像度、高コントラスト比、迫力あるサウンドを実現。スマートフォンやゲーム機との無線接続にも対応し、エンターテイメントの幅が広がります。\n\n主な特徴:\n1. フルHD解像度: 1920×1080ピクセルのフルHD解像度に対応。鮮明で精細な映像を投影できます。\n2. 高コントラスト比: 10,000:1の高コントラスト比により、深みのある黒と鮮やかな色を再現します。\n3. ワイヤレス接続: Wi-FiとBluetoothに対応。スマートフォンやタブレット、ゲーム機などと無線接続できます。\n4. 内蔵スピーカー: 10Wの高品質ステレオスピーカーを内蔵。臨場感あふれるサウンドを楽しめます。\n5. コンパクト設計: 本体サイズはわずか15×15×10cm。持ち運びに便利で、様々な場所で使用できます。\n\n同梱品:\n- シネマハウス本体\n- 電源ケーブル\n- リモコン\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@cinemahouse.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。",
"製品名: 空気清浄機「ピュアエアー」\n\n製品概要:\nピュアエアーは、高性能なHEPAフィルターと多段階清浄システムにより、微細な粒子やニオイをしっかりと除去する空気清浄機です。PM2.5や花粉、ハウスダストなどを取り除き、快適な空気環境を作り出します。また、静音設計で寝室でも使いやすくなっています。\n\n主な特徴:\n1. 高性能HEPAフィルター: 0.3μmの微粒子を99.97%以上キャッチするHEPAフィルターを採用。アレルギー物質や有害物質を強力に除去します。\n2. 多段階清浄システム: プレフィルター、活性炭フィルター、HEPAフィルターの3段階システムで、効果的に空気を清浄します。\n3. 室内空気質センサー: 室内の空気質を検知し、自動で運転モードを調整。常に最適な空気環境を保ちます。\n4. タイマー機能: 1時間から8時間まで、1時間単位でタイマー設定が可能。就寝時などに便利です。\n5. コンパクトサイズ: たて型のコンパクト設計で、リビングや寝室など様々な場所に設置できます。\n\n同梱品:\n- ピュアエアー本体\n- HEPAフィルター\n- 活性炭フィルター\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@pureair.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: 食器洗い乾燥機「クリーンウォッシャー」\n\n製品概要:\nクリーンウォッシャーは、強力な洗浄力と省エネ性能を両立した、ビルトイン型の食器洗い乾燥機です。少ない水とエネルギーで、食器や調理器具をしっかりと洗浄・乾燥。キッチンの使い勝手とデザイン性を高める、スタイリッシュな製品です。\n\n主な特徴:\n1. 強力な洗浄力: 高圧ジェットスプレーと高温洗浄により、こびりついた汚れもスッキリ落とします。\n2. 省エネ設計: 節水設計と効率的な乾燥システムにより、水とエネルギーの消費を抑えます。\n3. 大容量: 大皿からカトラリーまで、一度に大量の食器を洗浄できます。\n4. 多彩なプログラム: 通常洗浄、強力洗浄、エコ洗浄など、用途に合わせて最適なプログラムを選べます。\n5. タッチパネル操作: 直感的に操作できるタッチパネルを搭載。スタートやプログラム選択が簡単に行えます。\n\n同梱品:\n- クリーンウォッシャー本体\n- 給水ホース\n- 排水ホース\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@cleanwasher.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から3年間の製品保証が付いております。",
"製品名: スマートスピーカー「サウンドアシスタント」\n\n製品概要:\nサウンドアシスタントは、AIアシスタント機能と高音質オーディオを融合した、次世代のスマートスピーカーです。音声コマンドで情報検索やスマートホーム操作が可能。また、ハイレゾ対応のスピーカーユニットを搭載し、迫力ある音楽再生を楽しめます。\n\n主な特徴:\n1. AIアシスタント: クラウドベースのAIアシスタントを搭載。音声で操作や問い合わせが可能です。\n2. ハイレゾオーディオ: ハイレゾ音源の再生に対応。臨場感あふれるサウンドを実現します。\n3. マルチルーム再生: 複数台のスピーカーを同期して、家中で音楽を楽しめます。\n4. スマートホーム連携: 照明やエアコンなど、対応するスマートデバイスの操作が音声でできます。\n5. コンパクト設計: コンパクトながらパワフルなサウンドを実現。インテリアになじむシンプルなデザインです。\n\n同梱品:\n- サウンドアシスタント本体\n- 電源ケーブル\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@soundassistant.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: ロボット掃除機「ネオロボ」\n\n製品概要:\nネオロボは、AIによる学習機能と強力な清掃力を備えた、次世代のロボット掃除機です。家中の間取りを学習し、効率的な清掃ルートを生成。カーペットや畳の上り下りもスムーズに行い、隅々までしっかりとゴミやホコリを吸い取ります。\n\n主な特徴:\n1. AIルート生成: 清掃を繰り返しながら、AIが最適な清掃ルートを学習・生成します。\n2. パワフル吸引: 強力なモーターとブラシで、微細なホコリからペットの毛まで吸い取ります。\n3. 自動ゴミ収集: 本体のゴミをクリーンステーションに自動で回収。手間なくゴミ捨てが可能です。\n4. マルチフロア対応: フローリングや畳、カーペットなど、様々な床面を乗り越えて掃除します。\n5. 音声アシスタント対応: Amazon AlexaやGoogle アシスタントに対応。音声で操作ができます。\n\n同梱品:\n- ネオロボ本体\n- 充電ステーション（クリーンステーション付き）\n- ACアダプター\n- サイドブラシ ×2\n- HEPAフィルター ×2\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@neorobo.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: 加湿空気清浄機「エアーリフレッシャー」\n\n製品概要:\nエアーリフレッシャーは、空気清浄と加湿の機能を兼ね備えた、オールインワンの空気管理システムです。花粉やPM2.5などの微粒子を除去し、適度な湿度を保つことで、快適な室内環境を維持します。省エネ設計で、一年中エコに使えます。\n\n主な特徴:\n1. ハイブリッド清浄: HEPAフィルターと活性炭フィルターのダブル清浄システムで、微粒子やニオイを効果的に除去します。\n2. 加湿機能: 気化式加湿方式を採用。清浄した空気を適度な湿度にコントロールします。\n3. 適応制御: 室内の空気質や湿度を検知し、自動で最適な運転モードに切り替えます。\n4. タイマー機能: 2時間、4時間、8時間のタイマー設定が可能。就寝時などに便利です。\n5. 静音設計: 運転音は最大で35dB。就寝時や勉強時にも影響しません。\n\n同梱品:\n- エアーリフレッシャー本体\n- リモコン\n- HEPAフィルター\n- 活性炭フィルター\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@airrefresher.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマートライト「ルミナスプラス」\n\n製品概要:\nルミナスプラスは、色や明るさを自由にカスタマイズできる、スマート照明システムです。1600万色のカラーバリエーションと調光機能により、シーンに合わせた最適な照明環境を作り出せます。スマートフォンアプリや音声アシスタントとの連携にも対応。ライティングのスマート化を実現します。\n\n主な特徴:\n1. 1600万色の調光: RGBカラーLEDを採用。1600万色の中から自由に色を選択できます。\n2. 調光機能: 5％から100％まで、シームレスな調光が可能。明るさを細かく調整できます。\n3. スマートフォン連携: 専用アプリから、色や明るさの調整、タイマー設定などが行えます。\n4. 音声アシスタント対応: Amazon AlexaやGoogle アシスタントに対応。音声で照明を操作できます。\n5. シーン設定: 読書、勉強、リラックスなど、用途に合わせたライティングシーンを設定可能。\n\n同梱品:\n- ルミナスプラス本体\n- ACアダプター\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@luminousplus.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: ウェアラブルカメラ「アクションシューター」\n\n製品概要:\nアクションシューターは、アウトドアでの撮影に特化した、コンパクトなウェアラブルカメラです。4K動画撮影と手振れ補正機能を搭載。ユーザーの視点で、臨場感あふれる映像を記録できます。耐水・耐衝撃性能に優れ、過酷な環境下でも使用可能です。\n\n主な特徴:\n1. 4K動画撮影: 高解像度の4K動画を30fpsでスムーズに撮影。鮮明で迫力ある映像が得られます。\n2. 手振れ補正: 6軸電子式手振れ補正により、アクティブな撮影でもブレの少ない映像を実現します。\n3. 耐水・耐衝撃: IPX8規格の防水性能と、2mの耐衝撃性能を備えています。\n4. ワイヤレス接続: Wi-Fi接続により、スマートフォンでのリモート操作や映像の転送が可能です。\n5. 多彩なアクセサリー: ヘルメットマウントやチェストマウントなど、様々な撮影スタイルに対応するアクセサリーが付属。\n\n同梱品:\n- アクションシューター本体\n- 防水ハウジングケース\n- バッテリー\n- USBケーブル\n- マウントアクセサリーセット\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@actionshooter.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマートロック「セーフガード」\n\n製品概要:\nセーフガードは、ドアの施錠・解錠をスマートフォンで管理できる、次世代のスマートロックシステムです。専用アプリやICカードでの操作に加え、指紋認証にも対応。高いセキュリティ性能と使いやすさを両立した、安心のセキュリティソリューションです。\n\n主な特徴:\n1. 多彩な解錠方法: スマートフォンアプリ、ICカード、指紋認証など、複数の解錠方法に対応。\n2. リモート操作: 専用アプリを使って、離れた場所からドアの施錠・解錠が可能。\n3. 履歴機能: 施錠・解錠の履歴をアプリで確認できます。\n4. シェアリング機能: 家族や友人とスマートロックを共有。一時的な解錠権限を付与することも可能。\n5. タッチパネル: ドアの内側には、施錠・解錠や在室状況を表示するタッチパネルを搭載。\n\n同梱品:\n- セーフガード本体\n- 専用ICカード ×2\n- 取付用ネジセット\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@safeguard.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: 防犯カメラ「ホームセンチネル」\n\n製品概要:\nホームセンチネルは、AIによる高度な検知機能を搭載した、スマート防犯カメラシステムです。人や車の動きを検知し、リアルタイムで通知。また、夜間の撮影に強い赤外線暗視機能を備え、24時間の監視を実現します。スマートフォンアプリで、いつでもどこからでもカメラの映像を確認できる安心設計です。\n\n主な特徴:\n1. AI検知: 人や車の動きをAIが学習し、効果的に検知します。\n2. リアルタイム通知: 検知した際は、すぐにスマートフォンにプッシュ通知。素早い確認が可能です。\n3. 赤外線暗視: 赤外線LEDを搭載し、真っ暗な環境でもクリアな撮影が可能。\n4. フルHD録画: 1080pのフルHD画質で、鮮明な映像を記録します。\n5. 双方向音声: カメラに搭載されたマイクとスピーカーにより、スマートフォンとの双方向通話が可能。\n\n同梱品:\n- ホームセンチネル本体\n- ACアダプター\n- 壁掛け用ネジセット\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@homesentinel.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から3年間の製品保証が付いております。",
"製品名: ビデオドアホン「スマートビュー」\n\n製品概要:\nスマートビューは、スマートフォンと連携する、次世代のビデオドアホンです。来訪者の映像をリアルタイムでスマートフォンに配信。外出先からでも、インターホン越しに来訪者と会話ができます。また、録画機能や動体検知機能も搭載し、セキュリティ面も充実しています。\n\n主な特徴:\n1. スマートフォン連携: 専用アプリで、いつでもどこでもドアホンの映像を確認できます。\n2. 高画質映像: 200万画素のカメラを搭載。鮮明な映像で来訪者を確認できます。\n3. 双方向通話: スマートフォンとドアホン間で、クリアな音声通話が可能。\n4. 動体検知: 人の動きを検知すると、自動で録画を開始し、スマートフォンに通知します。\n5. 工事不要: 既存のドアホンと置き換えるだけで、簡単に設置できます。\n\n同梱品:\n- スマートビュー本体\n- ACアダプター\n- 取付用ネジセット\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@smartview.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマート体組成計「ボディトラック」\n\n製品概要:\nボディトラックは、体重だけでなく体脂肪率や筋肉量、BMIなど、多彩な体組成データを測定できる、スマート体組成計です。測定データはスマートフォンアプリと自動同期。健康管理やフィットネスの目標達成をサポートします。また、sleepace社の睡眠計「Sleepace」と連携し、体組成と睡眠の関係性も分析できます。\n\n主な特徴:\n1. 多項目測定: 体重、体脂肪率、筋肉量、BMI、体内年齢など、13項目の体組成データを測定。\n2. スマートフォン連携: Bluetooth接続で、測定データをアプリに自動同期。グラフや表で、変化を追跡できます。\n3. マルチユーザー対応: 最大10人のユーザー登録が可能。家族で共有しても、データを個別管理できます。\n4. Sleepace連携: Sleepaceの睡眠データと組み合わせることで、睡眠と体組成の関係を分析。\n5. 薄型デザイン: 薄さ28mmのスリムなデザイン。インテリアに自然に溶け込みます。\n\n同梱品:\n- ボディトラック本体\n- 単4電池 ×4本\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@bodytrack.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"鍵を持ち歩く必要はもうありません。セキュアエントリーがあれば、スマートフォンやICカードがドアの鍵になります。ドアを開けるたびに鍵を取り出す煩わしさから解放され、ドアの施錠管理がこれまでにないほどスマートになる。それが、この製品の革新的な価値です。\n\n自宅のドアに近づくだけで、スマートフォンが反応して自動で解錠。ICカードなら、かざすだけでドアが開きます。家族の誰もが、鍵を意識せずにスムーズに出入りできる、快適なAccess Controlを実現。来客へのこまめな対応も、ワンタッチで解錠できるから、ストレスを感じません。\n\nセキュリティ面は万全です。最新の暗号化技術を採用し、なりすましや不正アクセスを防ぐ高度なセキュリティシステムを構築。スマートフォンを紛失した際も、アプリから簡単にアクセス権を削除できるので安心です。\n\n利用状況の履歴管理機能も備えています。アプリ上で、いつ誰がドアを開けたかを確認可能。不審なアクセス履歴があれば、即座に把握できます。ご家族の帰宅時間の確認にも便利。必要なくなった履歴は、簡単に削除できます。\n\n取り付け作業は驚くほどシンプル。今お使いの鍵と交換するだけで、どなたでも簡単に設置できます。既存のドアの雰囲気を損なわず、スマートな利便性をプラスできるのも魅力です。\n\n鍵の束から解放される。そんなスマートな暮らしが、セキュアエントリーから始まります。毎日使うドアだから、利便性とセキュリティを妥協したくない。そんなあなたの期待に、応えられる製品です。",
"いざという時の安心を、コンパクトなボディに込めました。パワーステーションは、どこでも電源が確保できる、頼れるポータブル電源です。\n\n非常用電源としての活躍はもちろん、アウトドアレジャーでも大活躍。キャンプ場での充電はこれ一台でOK。夜も安心して、電気を使えます。車中泊にも最適。スマホやタブレットも、存分に使えます。\n\n大容量の500Whバッテリーを搭載。ノートパソコンなら約20回、スマホなら約100回の充電が可能です。容量を気にせず使えるから、もしもの時も安心。電源問題から解放されます。\n\nAC、DC、USB、Type-Cなど、多彩な出力ポートを装備。様々な機器の充電に対応します。電源タップ要らずで、必要な機器に直接つなげます。\n\nAC出力は純正弦波を採用。デリケートな電子機器にも、安定した電力を供給。システムダウンなどの心配がなく、安全に使えます。\n\n晴れの日はソーラーパネルで充電。エコな発電で、いざという時に備えられます。災害時の非常用電源としても、心強い味方になってくれるでしょう。\n\n過充電、過放電、過熱など、バッテリーを守る保護機能も充実。安全性が高く、初めての方にも扱いやすい設計です。\n\nいつでもどこでも、頼れる電源を。パワーステーションなら、もう電源の心配はいりません。安心を手のひらに、便利を毎日に。そんなポータブル電源を、ぜひ日常に取り入れてみてください。",
"プレゼンテーションの悩みを一発解決。スマートポインターは、直感的な操作で、あなたのプレゼンを次のレベルへと導きます。\n\nレーザーポインター、ワイヤレスマウス、プレゼン操作。3つの機能を1台にまとめた、スマートなプレゼンツールの登場です。\n\n明るく見やすいグリーンレーザーを採用。会場の最後列まで、ポイントを明確に示せます。資料の重要部分を強調するのに最適。聴衆の注目を集められます。\n\nレーザー以外にも、多彩な操作が可能。ワイヤレスマウスとしても機能します。空中でマウスのように操作できるので、画面を指し示しながら、直感的にPCを操れます。\n\nページ送りや、ペン機能、ブラックスクリーンなど、プレゼンに必要な操作も思いのまま。進行にも臨機応変に対応できるので、聴衆を飽きさせません。\n\n30m先でも安定して通信。大きな会場でも、スムーズにプレゼンを進められます。\n\n充電式バッテリー内蔵で、ケーブル要らず。1回の充電で最長20時間使えるので、フル充電すれば長丁場のセミナーも安心です。\n\nPC操作に集中して、プレゼンに磨きをかける。スマートポインターなら、プレゼンターの負担を大幅に軽減します。操作で悩まず、伝えたいことに集中できる。そんなストレスフリーのプレゼンを、ぜひ体験してください。",
"空から世界を見れば、新しい発見がある。スカイエクスプローラーは、空撮の楽しさと感動を、もっと身近にする高性能ドローンです。\n\n4Kカメラによる圧倒的な高画質。上空からの映像も、リアルな臨場感たっぷりです。ジンバルによる手ブレ補正で、スムーズな映像が撮れます。\n\n初心者でも扱いやすい、安定性抜群の飛行性能。GPSとオプティカルフローによる高精度ホバリングで、狙った場所にピタッと固定。スムーズな操縦をサポートします。\n\n飛行時間は最大30分。5000mAhの大容量バッテリーで、たっぷり空撮が楽しめます。\n\n自動飛行モードも充実。被写体を自動で追尾する「フォローミー」や、指定した軌道を周回する「オービット」など、アシスト機能が初心者をしっかりサポート。\n\n本体は、コンパクトに折りたためる設計。持ち運びに便利なので、いつでもどこでも空撮を楽しめます。\n\n高度な技術を、シンプルな操作で使いこなせる。スカイエクスプローラーは、空撮の新しいスタンダードになります。これまでになかった映像表現を楽しんでみませんか。ドローンの新時代を、あなたの手で切り拓く。そんな冒険に、ぜひ出かけてみてください。", 
"歯磨きをもっとスマートに、もっと効果的に。クリーンスマイルは、歯科医監修の高性能電動歯ブラシです。\n\n歯垢除去力は、手磨きの約5倍。毎分40,000回の音波振動が、歯の隙間や奥歯の汚れもスッキリかき出します。口内を健康に保つための強い味方です。\n\n独自開発のブラシヘッドは、極細毛が歯の表面や隙間に入り込む設計。360°全方位から汚れに迫り、歯垢を除去します。\n\n歯の状態に合わせて、5つのモードを選択可能。普段のクリーニングから、ホワイトニング、歯ぐきケアまで、あなたの歯のニーズに合わせてモードを変えられます。\n\nスマートフォンアプリと連携すれば、ブラッシング状態をデータで「見える化」。ブラッシング時間や頻度、磨き残しの位置などが一目瞭然。モチベーションアップにつながります。\n\n2分間のオートタイマー付き。歯科医推奨のブラッシング時間を、自動でキープ。時間を気にせず、しっかりブラッシングに集中できます。\n\n1回の充電で、90日間使える長寿命バッテリー。安心して使い続けられる耐久性も魅力です。\n\nこれからの歯磨きは、スマートに、テクノロジーの力を味方につけて。クリーンスマイルで、あなたの歯を、プロ級の輝きに。いつまでも健康な歯で、笑顔あふれる毎日を過ごしてください。",
"健康は毎日の積み重ね。ウェルネスワンは、日々の健康管理を、もっとスマートに、もっと楽しくする新しいヘルスケアウォッチです。\n\n高精度なセンサーで、心拍数、血圧、血中酸素、ストレスレベルなど、様々なデータをリアルタイムで測定。健康状態を、正確に把握できます。\n\n測定データは、専用アプリに自動同期。直感的なグラフや表示で、日々の変化が一目で分かります。アプリが、あなたの健康状態をしっかり管理してくれる心強い味方です。\n\n集めたデータをAIが分析し、あなたに最適な健康アドバイスを提案。パーソナライズされたヘルスケアを体験できます。\n\n薄型で軽量、スタイリッシュなデザイン。装着していることを忘れるほどの快適さです。柔らかいシリコンストラップで、肌に優しくフィット。\n\n1回の充電で最長7日間動作。面倒な毎日の充電は不要。ストレスなく、毎日つけ続けられます。\n\nウェルネスワンは、毎日をもっと健やかに、もっと楽しくする新しい健康習慣。テクノロジーの力を借りて、心も体も軽やかに。そんな毎日を、この一台から始めてみませんか。",
"大画面で映画を楽しみたい、でも大掛かりなホームシアターは置けない。そんなあなたに最適なのが、コンパクトプロジェクター「シネマハウス」です。\n\nフルHD解像度の鮮明な映像美は、まるで映画館にいるかのよう。1920x1080ピクセルの高精細な画質が、臨場感たっぷりの映像世界を作り出します。\n\n10,000:1の高コントラスト比が、深みのある黒と輝くような白を実現。映画のワンシーンが、より印象的に、リアルに再現されます。\n\nWi-FiとBluetoothを搭載。スマホやタブレットから手軽に映像を飛ばせます。大画面でのゲームプレイも、これ一台でOK。エンターテインメントの幅が大きく広がります。\n\n内蔵の10Wステレオスピーカーは、パワフル＆クリアなサウンドを響かせます。外部スピーカーを繋がなくても、十分な臨場感が得られます。\n\nコンパクトな本体は、わずか15x15x10cm。リビングでもベッドルームでも、場所を選ばず気軽に設置できます。大画面シアターが、これ一台で完結。\n\nシネマハウスは、映画館の感動を、もっと身近に、もっと手軽に。大好きな映画に囲まれて過ごす、至福のひとときを。そんな、映画好きのためのプロジェクターです。",
"音楽に革新を、生活にスマートさを。スマートサウンドは、AIの力であなたの毎日を豊かにサポートする、次世代の音声アシスタント機能付きスピーカーです。\n\n360度に広がる立体的なサウンドで、お部屋全体が感動的な音の世界に包まれます。大口径ウーファーと高性能ツイーターによる迫力の重低音と透き通るような高音が、今まで聴いたことのない音楽体験をもたらします。音楽のジャンルを問わず、まるでライブ会場にいるかのような臨場感あふれるサウンドを、ご自宅で気軽に楽しめます。\n\nしかし、スマートサウンドの真価は音楽再生だけに留まりません。最先端のAI技術を搭載したスマートサウンドは、あなたの声の指示一つで様々な便利機能を提供します。今日の天気予報や交通情報を教えてくれたり、スケジュール管理やタスクの通知を行ってくれたりと、日常生活に欠かせないパーソナルアシスタントとして活躍します。音声で操作できるオンラインショッピング機能も搭載。家にいながら、欲しい商品をカンタンにオーダーできます。\n\n複数のスマートサウンドをご家庭の各部屋に設置し、連携させることで、より快適で便利な生活が実現します。一台のスマートサウンドに話しかけるだけで、家じゅうの全スピーカーから同じ音楽を流すことも可能。親子で別の部屋にいても、一緒に音楽を楽しめます。照明やエアコンなどの家電製品との連携にも対応。声による指示で、部屋の明るさや空調を自在にコントロールできるのです。\n\nコンパクトでスタイリッシュなボディには、先進のテクノロジーが凝縮されています。リビングで主役になるにふさわしい、スマートでクールなルックス。AI時代にふさわしい、インテリジェントなデザインです。\n\n音楽を愉しみ、AIの恩恵を受ける。スマートサウンドは、あなたの毎日をもっと彩り豊かに、もっとスマートに変えていきます。使い込むほどに、手放せなくなる。きっと、あなたの生活に欠かせない存在になるでしょう。",
"部屋の空気は、あなたの健康に大きな影響を与えます。エアリーンは、高性能フィルターの力とスマートなセンシング技術により、いつでも快適で安全な空気環境を保つ、賢い空気清浄機です。\n\n花粉やハウスダスト、PM2.5など、目に見えない有害物質から家族の健康を守るのは、エアリーンの役目。0.3μmという微小な粒子を99.97%以上キャッチする高性能HEPAフィルターを搭載。アレルギー物質や、ペットの毛なども逃しません。お部屋の空気から、徹底的に汚染物質を取り除きます。\n\nエアリーンの優れた点は、空気質を常に監視し、賢く対応してくれることです。汚れたら自動で空気を浄化し、きれいになったら自動で運転を停止。ムダな電力消費を抑えつつ、常に最適な空気環境を保ちます。就寝中や勉強中など、音が気になるシーンでも大丈夫。静音設計なので、運転音を意識せずに使えます。独自の送風システムにより、部屋のすみずみまで効率的に浄化。広い部屋でも隅々まで、きれいな空気が行き渡ります。\n\nスマートフォンとの連携機能も、とても便利。外出先から部屋の空気状態を確認したり、運転のオン・オフを切り替えたりと、エアリーンをリモートで思いのままコントロールできます。帰宅前に浄化運転を始めれば、帰宅後すぐに心地よい空間が広がっています。\n\nシンプルでモダンなデザインは、どんなインテリアにも自然になじみます。リビングに置いても、寝室に置いても違和感ありません。むしろ、スタイリッシュな空気清浄機があることで、部屋の雰囲気が引き締まります。\n\nエアリーンのある暮らしは、まさに呼吸が変わる experience。イヤな臭いやホコリとは無縁の、クリーンな空気があたりまえになる。そんな快適な日常を、ぜひあなたも体験してみてください。",
"冷蔵庫は、毎日の食生活に欠かせない最も重要な家電製品の一つです。しかし、「スマートクール」は、これまでの冷蔵庫の常識を覆す、まったく新しいコンセプトのもとに生まれました。先進のテクノロジーを結集し、保存性能と利便性、そしてデザイン性を極限まで追求。「冷蔵庫」の枠を超えた、未来の生活を見据えたプロダクトです。\n\n最大の特長は、独自開発のインバーター制御技術による、強力な冷却性能と省エネ性の両立。大容量でありながら電気代が驚くほど少ない、経済的な運転を実現しました。また、気になる運転音も業界最小レベル。冷蔵庫が部屋にあることを、ほとんど意識せずに済みます。\n\n様々な機能も、「スマートクール」ならでは。専用アプリとの連携により、どこにいても冷蔵庫内をチェックできるので、買い物も効率的。食材管理機能も充実しており、賞味期限が近づくと通知してくれるので、無駄になる食材ゼロを目指せます。\n\n真空保存できるチルドルームを搭載。食材の風味や栄養を損なわずに、長期保存が可能。週末にまとめて作り置きを作り、平日は簡単に美味しい料理が食べられる。そんな賢い家事スタイルをサポートします。\n\n収納力も抜群。独自の「スマート収納」システムにより、どんな食材もムダなくストックできます。しかも、自由に棚割りを変更できるので、使うたびにレイアウトを進化させていけるのです。\n\n洗練された佇まいは、まるでオブジェのよう。シルバーのボディはスタイリッシュな輝きを放ち、まるでキッチンのアクセントになります。シンプルなデザインに、先進機能を隠し持つ。それが「スマートクール」のアイデンティティです。\n\nさあ、日々の食卓に、もっとワクワクを。もっとスマートさを。「スマートクール」で、food Lifeを再定義しましょう。",
"緑豊かな美しい庭は、家の顔として重要な役割を果たします。しかし、広い芝生の手入れは大変な労力を要するもの。ガーデンメイトは、そんな庭の管理を全自動で行う、画期的なロボット芝刈り機。庭の景観美化を、ラクに、スマートに実現します。\n\n美しい芝生は、高さが均一に整えられていることが大切。ガーデンメイトは、芝生の状態を高精度のセンサーで把握し、場所ごとに最適な高さで芝を刈り揃えていきます。起伏のある部分も、狭い隙間も、見落とすことなく作業するので、仕上がりは完璧。面倒な除草作業から、あなたを解放します。\n\n高性能ナビゲーション技術と、自己学習能力を備えたAIの力で、あらゆる庭の形状に対応。効率的な経路で芝刈りを行うので、無駄な電力を消費しません。予定された範囲を漏れなくカバーし、整然と刈り揃えられた芝生を実現します。\n\n小さなお子様やペットが庭で遊ぶご家庭も、ご安心ください。人や動物との接触を感知すると、即座に作業を停止する安全設計です。歩行者用の通路を邪魔せず、建物の近くなど狭いスペースも問題なく処理します。\n\nスマートフォンアプリで、いつでもガーデンメイトの動きをコントロール。芝刈りのスケジュール管理から、作業履歴の確認まで、リモートで行えます。突然の雨でも、防水・防塵性能により、そのまま屋外に置いておけるので便利です。\n\n機能美を追求したスマートなフォルムは、どんな庭にも調和するモダンなデザイン。まるでオブジェのような佇まいです。\n\nガーデンメイトが活躍する庭からは、暖かいおもてなしの心が伝わります。手間なく、美しい景観を保てる。そんなスマートな庭仕事を、体験してみませんか。",
"鍵を持ち歩く必要はもうありません。セキュアエントリーがあれば、スマートフォンやICカードがドアの鍵になります。ドアを開けるたびに鍵を取り出す煩わしさから解放され、ドアの施錠管理がこれまでにないほどスマートになる。それが、この製品の革新的な価値です。\n\n自宅のドアに近づくだけで、スマートフォンが反応して自動で解錠。ICカードなら、かざすだけでドアが開きます。家族の誰もが、鍵を意識せずにスムーズに出入りできる、快適なAccess Controlを実現。来客へのこまめな対応も、ワンタッチで解錠できるから、ストレスを感じません。\n\nセキュリティ面は万全です。最新の暗号化技術を採用し、なりすましや不正アクセスを防ぐ高度なセキュリティシステムを構築。スマートフォンを紛失した際も、アプリから簡単にアクセス権を削除できるので安心です。\n\n利用状況の履歴管理機能も備えています。アプリ上で、いつ誰がドアを開けたかを確認可能。不審なアクセス履歴があれば、即座に把握できます。ご家族の帰宅時間の確認にも便利。必要なくなった履歴は、簡単に削除できます。\n\n取り付け作業は驚くほどシンプル。今お使いの鍵と交換するだけで、どなたでも簡単に設置できます。既存のドアの雰囲気を損なわず、スマートな利便性をプラスできるのも魅力です。\n\n鍵の束から解放される。そんなスマートな暮らしが、セキュアエントリーから始まります。毎日使うドアだから、利便性とセキュリティを妥協したくない。そんなあなたの期待に、応えられる製品です。",
"製品名: 浄水器「クリスタルクリア」\n\n製品概要:\nクリスタルクリアは、高性能な複合フィルターを搭載した、アンダーシンク型の浄水器です。水道水に含まれる汚れや不純物、細菌などを除去し、安全でおいしい飲み水を提供します。コンパクトながら、大容量の浄水が可能。キッチンをスッキリ保ちつつ、清潔な水を使えます。\n\n主な特徴:\n1. 高性能フィルター: 活性炭、セラミック、中空糸膜フィルターの複合フィルターを採用。さまざまな汚れを除去します。\n2. 大容量浄水: 1日当たり最大12リットルの浄水が可能。一般家庭のニーズに十分応えます。\n3. コンパクト設計: コンパクトなボディを実現。シンク下のスペースにすっきり収まります。\n4. 簡単メンテナンス: フィルターは、スライドするだけで簡単に交換できます。\n5. NSF認証: 米国のNSF International（国際衛生規格）の認証を取得。安全性が保証されています。\n\n同梱品:\n- クリスタルクリア本体\n- 複合フィルター\n- 専用水栓\n- 接続ホース\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@crystalclear.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: 電動歯ブラシ「デンタルエレクト」\n\n製品概要:\nデンタルエレクトは、高速振動と3Dクリーニング機能で歯垢を効果的に除去する、ハイエンド電動歯ブラシです。強力な清掃力で、手磨きでは届きにくい歯間や奥歯までしっかりとケア。口腔内を健康に保ちます。さらに、専用アプリと連携し、ブラッシング習慣の改善もサポートします。\n\n主な特徴:\n1. 高速振動: 毎分40,000回の高速振動で、歯垢や汚れを強力に除去します。\n2. 3Dクリーニング: ブラシが回転・振動・上下運動を組み合わせた3D動作で、歯間や歯の裏側もくまなく磨きます。\n3. 5つのモード: クリーン、ホワイトニング、ガムケア、センシティブ、マッサージの5つのモードを搭載。\n4. スマートフォン連携: 専用アプリでブラッシング時間や頻度を記録。習慣改善をサポートします。\n5. 長時間駆動: フル充電で約3週間使用可能。旅行先でも安心です。\n\n同梱品:\n- デンタルエレクト本体\n- 充電器\n- ブラシヘッド ×3\n- トラベルケース\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@dentalelect.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から2年間の製品保証が付いております。",
"製品名: スマート調光ミラー「ビューティービジョン」\n\n製品概要:\nビューティービジョンは、スマート機能を搭載した化粧鏡です。周囲の光に合わせて自動的に明るさを調整し、常に最適な明るさで鏡を使えます。拡大鏡機能や、メイクアップの参考になるチュートリアル動画の再生機能も搭載。スキンケアやメイクアップをより快適で効果的に行えます。\n\n主な特徴:\n1. スマート調光: 内蔵のセンサーが周囲の明るさを検知し、LEDの明るさを自動調整。\n2. 拡大鏡: 通常の鏡面に加え、5倍拡大鏡を搭載。細部のメイクアップに便利です。\n3. チュートリアル動画: メイクアップのテクニックを学べる動画を内蔵。鏡を見ながら、スキルアップできます。\n4. タッチパネル操作: 鏡面にタッチパネルを搭載。タップやスワイプで、直感的に機能を操作できます。\n5. 充電式: 内蔵バッテリーで、コードレスで使用可能。フル充電で約3週間使えます。\n\n同梱品:\n- ビューティービジョン本体\n- 充電台\n- USBケーブル\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@beautyvision.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマートケトル「ブリューマスター」\n\n製品概要:\nブリューマスターは、お好みの温度で淹れられる温度調整機能と、スマートフォン連携機能を備えた電気ケトルです。コーヒーや紅茶など、さまざまな飲み物に最適な温度を設定できます。また、専用アプリを使えば外出先からでもケトルの操作が可能。新しいお茶の時間を提案します。\n\n主な特徴:\n1. 温度調整機能: 40°Cから100°Cまで、1°C単位で温度設定が可能。\n2. 保温機能: 設定した温度で最長60分間の保温ができます。\n3. スマートフォン連携: 専用アプリから、ケトルの操作やタイマー設定が可能。\n4. 高速沸騰: 1200Wのハイパワーで、素早くお湯を沸かせます。\n5. ステンレス製ボディ: 耐久性と保温性に優れた、ステンレス製の本体を採用。\n\n同梱品:\n- ブリューマスター本体\n- 電源ベース\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@brewmaster.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: スマート加湿器「エアーメイト」\n\n製品概要:\nエアーメイトは、最適な湿度を自動で維持する、スマート加湿器です。室内の湿度を検知し、設定した湿度になるように自動で加湿量を調整。また、アプリ連携により、外出先からでも湿度の確認や操作ができます。ミストの吹出口は360°回転し、お好みの方向に調整可能。快適な室内環境を作り出します。\n\n主な特徴:\n1. 湿度自動調整: 設定した湿度を維持するよう、自動で加湿量を調整します。\n2. アプリ連携: 専用アプリで、湿度の確認や加湿器の操作が可能。\n3. 360°回転ノズル: ミストの吹出口が360°回転。お好みの方向にミストを送れます。\n4. アロマ対応: アロマオイルを使用できるアロマトレイ付き。\n5. 大容量タンク: 5リットルの大容量タンクで、最大50時間の連続加湿が可能。\n\n同梱品:\n- エアーメイト本体\n- ACアダプター\n- アロマトレイ\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@airmate.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。",
"製品名: ワインセラー「グランセラー」\n\n製品概要:\nグランセラーは、ワイン愛好家のためのコンパクトなワインセラーです。2つの独立した温度ゾーンを備え、赤ワインと白ワインを最適な温度で保存可能。湿度管理システムとアンチUVガラスを採用し、ワインの品質を守ります。扉は逆開きに設定変更でき、設置場所を選びません。\n\n主な特徴:\n1. デュアル温度ゾーン: 上段と下段で独立した温度設定が可能。赤ワインと白ワインに最適な環境を提供します。\n2. 湿度管理システム: 理想的な湿度を維持し、コルクの乾燥を防ぎます。\n3. アンチUVガラス: 紫外線を99%カットする、UVプロテクトガラスを採用。\n4. リバーシブルドア: 扉の開く向きを左右変更できるリバーシブルドアを採用。\n5. LEDライト: 庫内を照らすLEDライトを装備。ワインラベルの確認に便利です。\n\n同梱品:\n- グランセラー本体\n- 棚板 ×6\n- 鍵 ×2\n- 取扱説明書\n- 保証書\n\nサポート:\n製品に関するご質問や問題がございましたら、カスタマーサポートまでご連絡ください。\nメール: support@grandcellier.com\n電話: 0120-xxx-xxx (平日9:00~18:00)\n\n保証期間:\nお買い上げ日から1年間の製品保証が付いております。"
]
}
```
</details>

`documents.json`は、RAGの情報ソースとして利用するJSONのドキュメントで、LLMが生成した架空の製品の説明文のリストになっています。

:::

### 3. Lambda関数の作成

AWSマネジメントコンソールから「Lambda」を検索し、選択します。「関数の作成」から「コンテナイメージ」を選択し、作成したECRリポジトリとイメージを指定して関数を作成します。 
関数名は`rag-test-function`とし、ランタイムは`python 3.10`を選択します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/3465d419-6d8c-2f3e-dd63-794b461b605d.png" width="500">

Lambda関数の設定→一般設定からタイムアウトを10分、メモリを500MB、エフェメラルストレージは2000MBに変更します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/2e236897-3fb9-5845-ec95-f7463fd42aaa.png" width="500">

### 4. 実行ロールとアクセス許可の設定

Lambdaの実行ロールにBedrockの`InvokeModel`アクションを許可する権限を付与します。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/93c8414f-ba8d-96af-0e82-3e3aedf503f1.png" width="500">

また、LambdaからBedrockのモデル（Cohere Multi Embeddings、Claude Instant v1、Claude 3 Sonnet）を呼び出すために、アクセス許可をオンにします。

bedrock→モデルアクセス→モデルアクセスを管理→変更を保存

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/3053afa2-3c88-8f5e-1aaf-241ee6f454c9.png" width="500">

### 5. Slack AppとLambdaの連携

[こちらの資料](https://qiita.com/Himeka_Kawaguchi/items/66cce374a88c243c439d)を参考に、 導入したいワークスペースからSlack Appを作成し、パブリックチャンネルでのやり取りに必要な下記権限を付与し、ワークスペースにインストールします。
- `app_mentions:read`  
- `chat:write`
- `channels:read`

そして、Slack Appの Signing Secret と、BotのAuth Tokenの値を取得しておきます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/9bc16554-e282-821a-2a2c-c9cab971db51.png" width="300">

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/a0508e70-7120-d719-e38a-ccce1d3bc358.png" width="300">

次に、Lambda関数→設定→環境変数より以下の環境変数を設定します。

```
BM25_TOP_K=20
LLM_MODEL_ID=anthropic.claude-3-sonnet-20240229-v1:0
VECTORSTORE_TOP_K=5
LLM_PROMPT="あなたは優秀な質問応答アシスタントです。これからユーザーから商品に関する質問が与えられます。以下の商品説明文書を参照しながら、その質問に回答してください。回答に必要な情報がこれらの商品説明文書内に見つからない場合は、「申し訳ありません。商品説明内にその質問に関連する情報が見当たりません。」と言ってください。回答の際は元の文章をそのまま引用するのではなく、質問の内容に合わせて適切に言葉を補って簡潔に分かりやすく回答してください。"
SLACK_BOT_TOKEN=Bot User OAuth Token の値
SLACK_SIGNING_SECRET=Signing Secret の値
```

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/86c09a94-6f8a-93d2-1444-4c33ced790c9.png" width="500">

次に、Lambda関数URLを発行します。認証タイプは`NONE`を選択し、発行されたURLをコピーしておきます。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/4a0f0a5b-6afb-f934-7e53-8ed614034d5e.png" width="500">
  
Lambda関数のURLをSlack AppのEvent Subscriptionsに登録します。

続いて、Subscribe to bot events→Add Bot User Eventに`app_mention`を追加します。
  
<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/9b5e4480-4aff-49cc-14cb-c6da64f9e5c8.png" width="500">

### 6. 実行

パブリックチャンネルを作成し、そのチャンネルに先ほどワークスペースにインストールしたSlack Appに対してメンション付きの質問をすると、RAGによる応答が返ってきます。

回答には1分程度かかります。

<img src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2988434/55ea9e94-6862-5061-4db3-a73d5ef07b0a.png">

`documents.json`の中身を変更したり、環境変数の値を変えるなど、是非色々試してみてください。  

## コスト試算

本記事で紹介したRAGアーキテクチャを1ヶ月間運用した場合の月額利用料金は、約**21ドル**程度となります。

<details>
<summary>前提条件と計算過程</summary>

前提条件:
- オレゴンリージョンで運用する
- **AWS Lambda** を使用し、メモリサイズは500 MB、エフェメラルストレージは2000MB、実行時間は2分（120秒）とする
- **LLM**にはクエリ生成に**Claude 3 Haiku**、回答生成に**Claude 3 Sonnet**を使用する
- 読み込ませるドキュメントは4000トークン/docのドキュメント1000個
- BM25検索で取得するドキュメントの数は20、ベクターストアで取得するドキュメントの数は5とする
- 1日あたり50件のリクエストがあり、30日間運用するものとする
- ECRの料金はストレージ料金のみとし、コンテナイメージは一つあたり600MBとする

計算過程:

1. AWS Lambda の料金計算:
   - リクエスト料金: $0.20 / 1,000,000 リクエスト = $0.0000002 / リクエスト
   - 実行時間料金: $0.0000166667 / GB-秒
   - メモリサイズ: 500 MB = 0.5 GB
   - 実行時間: 120秒
   - 1回の実行あたりの料金: $0.0000002 + ($0.0000166667 × 0.5 GB × 120秒) = $0.001000002
   - エフェメラルストレージ料金: $0.0000000309 / GB-秒
   - エフェメラルストレージ: 2000 MB = 2 GB
   - エフェメラルストレージ料金: $0.0000000309 × 2 GB × 120秒 = $0.000007416
   - AWS Lambda の1回あたりの実行料金: $0.001000002 + $0.000007416 = $0.001007416

2. Bedrockの料金計算:
   - Claude 3 Haiku (クエリ生成):
     - 入力トークン数: 80
     - 出力トークン数: 20
     - 入力1000トークンあたりの価格: $0.00025
     - 出力1000トークンあたりの価格: $0.00125
     - 入力トークン料金: (80 / 1000) × $0.00025 = $0.00002
     - 出力トークン料金: (20 / 1000) × $0.00125 = $0.000025
     - Claude 3 Haiku の合計料金: $0.00002 + $0.000025 = $0.000045
   - Claude 3 Sonnet (回答生成):
     - 入力トークン数: 4000トークン × 5doc = 20,000トークン
     - 出力トークン数: 200トークン
     - 入力1000トークンあたりの価格: $0.00025
     - 出力1000トークンあたりの価格: $0.00125
     - 入力トークン料金: (20,000 / 1000) × $0.00025 = $0.005
     - 出力トークン料金: (200 / 1000) × $0.00125 = $0.00025
     - Claude 3 Sonnet の合計料金: $0.005 + $0.00025 = $0.00525
   - cohere embed multilingualsの料金:
     - 1000トークンあたり $0.0001
     - 入力トークン数: 4000トークン × 20doc = 80,000トークン
     - 料金: (80,000 / 1000) × $0.0001 = $0.008
   - LLMの1回あたりの利用料金: $0.000045 + $0.00525 + $0.008 = $0.013295

3. ECRのストレージ料金: $0.10 per GB-month
   - コンテナイメージのサイズ: 600MB
   - 月額ストレージ料金: (600MB / 1024) × $0.10 = $0.059

4. 1日あたりの合計料金: ($0.001007416 + $0.013295) × 50回 = $0.715

5. 30日間の合計料金: $0.715 × 30日 = $21.45

6. 月額利用料金: $21.45 + $0.059 (ECRストレージ料金) = $21.51

したがって、本記事で紹介したRAGアーキテクチャを1ヶ月間運用した場合の月額利用料金は、約**21ドル**程度となります。

</details>

# さいごに

本記事では、**検索精度の高いRAGアーキテクチャ**と、それを**AWS上で実装する方法**を解説しました。
この手法は、キーワード検索とベクトル検索を組み合わせ、各手法の長所を活かした効果的な検索を実現します。

AWSでの実装では、LangChainなどのOSSを活用し、Lambda上でRAGの処理を完結させます。これにより、構成がシンプルになり、運用コストを抑えられます。

この情報がどなたかの参考になれば幸いです