OpenAI Embedding APIを使ってみる【Python】

前回の記事で OpenAI の新しい Embedding API について書きました。

今回は、実際に使用して ChatGPT に前提知識を与えた状態の Bot を作成してみたので記事にしています。

前提条件として与える内容

今回はホテルの問い合わせ対応をする Bot というイメージで、以下表に示す内容の文章を前提知識として ChatGPTへ与えることにします。

ファイルはCSV形式で保存しておきます。

fnametext
1. ゲストの歓迎お客様がホテルに到着した際、フレンドリーな笑顔と共に、礼儀正しく、エネルギッシュな挨拶を心掛けましょう。「いらっしゃいませ」または「お帰りなさい」等、場面に応じた表現を用いましょう。お客様の名前を知っている場合、パーソナライズされた挨拶をすることでお客様の満足度を高めることができます。
2. チェックインとチェックアウトチェックイン時間は午後3時、チェックアウト時間は午前11時です。早めのチェックインや遅めのチェックアウトを希望するお客様に対しては、空室状況を確認し、可能な限り対応しましょう。それが難しい場合は、一時的に荷物を預かるサービスを提案してください。
3. Wi-Fiと駐車場の案内全室に無料Wi-Fiが提供されています。接続方法やパスワードについて、確実に説明できるようにしておきましょう。また、無料の駐車場を180台分確保しています。駐車場の位置、利用方法、開閉時間などを正確に案内できるようにしましょう。
4. バリアフリー対応ユニバーサルルームの配置や設備、特長を理解し、必要に応じてお客様に説明できるようにしましょう。車椅子を利用するお客様がいらっしゃった場合、館内のバリアフリー設備について案内すると共に、必要であれば支援も提供しましょう。
5. ペットの対応ペット同伴のお客様に対しては、礼儀正しく、しかし明確にペットの同伴はできない旨を伝えましょう。その際、近隣のペットホテルをご紹介することで、ゲストの不便を軽減します。近隣のペットホテルの情報は最新の状態に保つようにしましょう。
6. ルームサービス午後11時までのルームサービスを提供しています。ルームサービスメニューの内容を熟知し、お客様からの問い合わせに適切に応えられるようにしましょう。また、料理のアレルギー情報や特別な食事制限にも対応できるよう、厨房との連携も重要です。
7. 禁煙ポリシーと喫煙室の案内全客室は禁煙です。しかし、喫煙者のお客様のニーズにも応えるため、喫煙室を1階に設けています。この情報を明確に伝え、喫煙室の場所や利用時間をお客様に案内しましょう。
8. キャンセルポリシーキャンセル料は、前日までの連絡で宿泊料金の30%、当日のキャンセルで50%、連絡なしの場合は100%となります。このポリシーは全ての予約に適用され、ゲストには予約時に明確に伝えるようにしましょう。
9. お支払いについてチェックアウト時にはフロントで現金、クレジットカード、デビットカードによるお支払いをお願いしています。また、インターネット予約を利用したお客様は、予約時にカード決済を選択することも可能です。支払い方法の選択肢を提供し、ゲストの利便性を高めるように心掛けましょう。
10. 常に敬意を持つお客様一人一人に敬意を持って接しましょう。お客様に対する礼儀正しさ、思いやり、プロ意識は、ホテルの品質を決定付ける重要な要素です。お客様が快適に過ごせるよう、全力を尽くすことを忘れないでください。

文章をベクトル化する

まずは、以下の内容のコードを作成します。ファイル名は『text_embedding.py』としておきましょう。

内容としては、tictoken というライブラリを用いて変換したい文章のトークン数に注意を払いつつ、コードの最後で定義した get_embedding 関数にて OpenAI の Embedding API を用いて、返り値を embedding.csv へ保存しています。

import pandas as pd
import tiktoken
from openai import OpenAI

embedding_model = "text-embedding-3-small"
embedding_encoding = "cl100k_base"
max_tokens = 1500  # embedding のパラメータ設定

# 表にまとめた文章を読み込み、カラム名を「title」と「text」に変更
df = pd.read_csv("(表にまとめた文章のファイル名).csv")
df.columns = ['title', 'text']

# textのトークン数を計算し、新しい列n_tokensに格納
tokenizer = tiktoken.get_encoding(embedding_encoding)
df['n_tokens'] = df.text.apply(lambda x: len(tokenizer.encode(x)))


def split_into_many(text, max_tokens = 500):
    '''
    テキストを最大トークン数に分割する関数
    '''

    # テキストを文ごとに分割し、各文のトークン数を取得
    sentences = text.split('。')
    n_tokens = [len(tokenizer.encode(" " + sentence)) for sentence in sentences]

    chunks = []
    tokens_so_far = 0
    chunk = []

    # 各文とトークンを組み合わせてループ処理
    for sentence, token in zip(sentences, n_tokens):

        # これまでのトークン数と現在の文のトークン数を合計した値が
        # 最大トークン数を超える場合は、チャンクをチャンクのリストに追加し、
        # チャンクとトークン数をリセット
        if tokens_so_far + token > max_tokens:
            chunks.append(". ".join(chunk) + ".")
            chunk = []
            tokens_so_far = 0

        # 現在の文のトークン数が最大トークン数より大きい場合は、次の文へ進む
        if token > max_tokens:
            continue

        # それ以外の場合は、文をチャンクに追加し、トークン数を合計に追加
        chunk.append(sentence)
        tokens_so_far += token + 1

    # 最後のチャンクをチャンクのリストに追加
    if chunk:
        chunks.append(". ".join(chunk) + ".")
    return chunks


# 短縮されたテキストを格納するためのリスト
shortened = []

# DataFrameの各行に対してループ処理
for row in df.iterrows():
    # テキストがNoneの場合は、次の行へ進む
    if row[1]['text'] is None:
        continue
    # トークン数が最大トークン数より大きい場合は、テキストを
    # 「shortened」リストに追加
    if row[1]['n_tokens'] > max_tokens:
        shortened += split_into_many(row[1]['text'])

    # それ以外の場合は、テキストをそのまま「shortened」リストに追加
    else:
        shortened.append(row[1]['text'])

# 「shortened」をもとに新しいDataFrameを作成し、列名を「text」とする
df = pd.DataFrame(shortened, columns = ['text'])

# 各「text」のトークン数を計算し、新しい列「n_tokens」に格納
df['n_tokens'] = df.text.apply(lambda x: len(tokenizer.encode(x)))


client = OpenAI()

def get_embedding(text, model=embedding_model):
   text = text.replace("\n", " ")
   return client.embeddings.create(input = [text], model=model).data[0].embedding


# 「text」列のテキストに対してembeddingを行い、CSVファイルに保存
df["embeddings"] = df.text.apply(lambda x: get_embedding(x, model=embedding_model))
df.to_csv('./embeddings.csv')

以下、上記コードを実行した際の返り値の例となります。

text列の文章が、embeddings列の通りのベクトルデータへ変換されたことが分かります。

textn_tokensembeddings
お客様がホテルに到着した際、フレンドリーな笑顔と共に、礼儀正しく、エネルギッシュな挨拶を心掛けましょう。「いらっしゃいませ」または「お帰りなさい」等、場面に応じた表現を用いましょう。お客様の名前を知っている場合、パーソナライズされた挨拶をすることでお客様の満足度を高めることができます。163[0.04174914211034775, -0.044435206800699234, -0.060820210725069046, 0.01603965274989605, 0.014619873836636543, -0.03844911605119705, -0.08549364656209946, 0.023464705795049667, 0.012797186151146889, -0.002435446484014392, -0.026131585240364075, 0.004583100322633982, -0.007410664577037096, -0.05026780813932419, 0.01214485615491867, 0.03179151192307472, -0.014380047097802162, -0.008696138858795166, 0.029988009482622147, -0.012048925273120403, -0.004753377754241228, 0.026227517053484917, -0.02381005696952343, -0.004355264361947775, -0.000766248325817287, 0.016135582700371742, -0.0048493086360394955, 0.002284355228766799, 0.036875851452350616, -0.02768566645681858, -0.0191574078053236, -0.028242066502571106, 0.024404829367995262, -0.009473179467022419, -0.02781997062265873, 0.026726357638835907, -0.020970501005649567, -0.015492845326662064, -0.02081701159477234, -0.016087617725133896, -0.024884484708309174, 0.030160684138536453, 0.041403789073228836, -0.030506037175655365, 0.0037844753824174404, 0.004566312301903963, -0.01866815984249115, -0.0181789118796587, 0.012873930856585503, 0.04965385049581528, -0.019195780158042908, -0.012835558503866196, -0.008537853136658669, -0.04808058217167854, -0.004057878628373146, -0.019512351602315903, 0.04171076789498329, -0.01842833124101162, 0.032904308289289474, 0.03269326314330101, 0.03595491498708725, -0.019493164494633675, 0.016375409439206123, 0.006173155270516872, -0.0022375890985131264, -0.0029690624214708805, -0.03963866084814072, -0.007070109713822603, 0.0021464545279741287, 0.029489168897271156, 0.008417938835918903, 0.03094731830060482, -0.03432408720254898, -0.0141689982265234, -0.050536416471004486, -0.01779518835246563, -0.0006433367962017655, -0.01177072525024414, -0.017344312742352486, -0.046161964535713196, -0.0583643801510334, -0.03204093128442764, -0.005650331731885672, -0.03179151192307472, 0.007688864134252071, -0.014523942954838276, -0.050536416471004486, -0.006379406899213791, 0.007568950764834881, -0.016250699758529663, 0.019330082461237907, 0.061587657779455185, -0.003937964793294668, 0.01766088418662548, -0.009477975778281689, 0.008782477118074894, 0.03685666248202324, -0.017891118302941322, -0.007991046644747257, 0.02081701159477234, 0.09217043966054916, -0.043015431612730026, -0.011828283779323101, 0.01246142853051424, 0.014811735600233078, -0.044396836310625076, -0.03380605950951576, -0.0074250539764761925, -0.027033336460590363, 0.012010552920401096, -0.048694539815187454, -0.025114718824625015, -0.053682949393987656, 0.029911264777183533, 0.016097210347652435, 0.061319053173065186, 0.0025613559409976006, -0.005458469968289137, -0.0013082580408081412, -0.029239747673273087, 0.023215286433696747, 0.04163402318954468, -0.03108162246644497, -0.02530658058822155, -0.0403677374124527, -0.03468862548470497, -0.028856024146080017, 0.04125029966235161, -0.0255751870572567, -0.05103525519371033, 0.04224798083305359, -0.07206331938505173, -0.0017603326123207808, 0.004451195243746042, -0.005108322016894817, -0.007185226771980524, 0.0036477737594395876, -0.0023143338039517403, -0.02555599994957447, -0.006595251616090536, 0.060589976608753204, -0.05065153166651726, -0.01540650799870491, -0.03209849074482918, -0.0063266451470553875, -0.044051483273506165, -0.03491885960102081, -0.00416819890961051, -0.06530977785587311, -0.006753537803888321, 0.007343512959778309, 0.024980414658784866, -0.073598213493824, 0.008317211642861366, -0.008369973860681057, 0.028913583606481552, 0.003194499993696809, -0.03720201551914215, -0.009573906660079956, 0.05107362940907478, 0.011473339051008224, 0.006830282509326935, -0.013238468207418919, -0.012490207329392433, -0.005065153352916241, -0.04424334689974785, -5.400799182098126e-06, 0.05963066592812538, 0.005060356575995684, 0.01553121767938137, -0.011905028484761715, -0.006753537803888321, -0.01580941677093506, -0.007621712516993284, 0.04389799386262894, 0.009482773020863533, 0.009871292859315872, 0.027493804693222046, -0.010485250502824783, 0.05322248116135597, -0.007885522209107876, 0.020356543362140656, -0.00871052872389555, -0.04501079395413399, 0.000868174945935607, -0.0506131611764431, -0.06826445460319519, 0.011818691156804562, -0.012566952034831047, -0.016739947721362114, 0.003947557881474495, -0.028491487726569176, 0.011367815546691418, -0.016250699758529663, 0.008369973860681057, -0.035897355526685715, 0.015502438880503178, -0.02104724571108818, -0.03583979606628418, -0.019224558025598526, -0.03566712141036987, -0.022582141682505608, 0.011444560252130032, -0.019857702776789665, 0.014207371510565281, -0.009890479035675526, 0.03518746420741081, 0.00821648444980383, -0.008561835624277592, 0.011060836724936962, 0.029489168897271156, 0.011185546405613422, -0.020644336938858032, 0.0019402031321078539, -0.08280757814645767, 0.04612359032034874, 0.04762011393904686, 0.029047885909676552, -0.03133104369044304, -0.022735631093382835, -0.0099576311185956, -0.022985050454735756, 0.059592295438051224, -0.06561675667762756, -0.0017315533477813005, 0.02555599994957447, 0.03549444302916527, -0.020989688113331795, 0.014571908861398697, -0.046660806983709335, 0.0021536494605243206, -0.017114078626036644, -0.0027052522636950016, -0.048541050404310226, -0.05084339529275894, -0.004854104947298765, -0.009890479035675526, 0.04236309975385666, 0.02191062457859516, -0.001641618087887764, 0.013209689408540726, 0.01322887558490038, 0.020375730469822884, -0.003096170723438263, 0.020970501005649567, -0.020452475175261497, -0.02118154987692833, -0.029393237084150314, 0.05349108949303627, -0.009051083587110043, 0.027532177045941353, -0.01730594038963318, 0.03480374068021774, -0.058210890740156174, -0.0030506036709994078, 0.014188184402883053, 0.030621154233813286, -0.04171076789498329, -0.014955632388591766, -0.00990007258951664, 0.0004931449657306075, 0.0043984330259263515, -0.02066352218389511, 0.005496842321008444, 0.04098169505596161, -0.052301544696092606, -0.06270045787096024, -0.04320729151368141, 0.01993444748222828, 0.0561387799680233, -0.04347589984536171, -0.055064354091882706, 0.000722479831892997, 0.04236309975385666, -0.020605964586138725, 0.026496123522520065, 0.0027939884457737207, 0.01089775376021862, 0.047044530510902405, -0.010907347314059734, -0.04976896941661835, -0.006988568231463432, 0.04320729151368141, -0.05963066592812538, -0.03008393943309784, -0.028491487726569176, 0.0066911824978888035, -0.023848429322242737, 0.002193220891058445, 0.017756815999746323, -0.03209849074482918, 0.0038684147875756025, -0.026726357638835907, -0.02956591360270977, 0.009722599759697914, 0.013132944703102112, 0.04823407158255577, 0.0038540251553058624, 0.03871772438287735, 0.020836198702454567, 0.010619553737342358, 0.012682069092988968, -0.003966744057834148, 0.03605084493756294, -0.02856823243200779, 0.007194819860160351, -0.024884484708309174, -0.04527939856052399, 0.043015431612730026, -0.01084019523113966, 0.020203053951263428, 0.01916700042784214, -0.0057654487900435925, -0.0006415381212718785, -0.02054840512573719, 0.005141898058354855, 0.02655368112027645, 0.03595491498708725, 0.011060836724936962, -0.02480773814022541, -0.01905188336968422, 0.06588536500930786, 0.0031105605885386467, -0.017267568036913872, -0.044550325721502304, 0.02691821940243244, 0.022083301097154617, -0.012979455292224884, 0.015454472973942757, -0.006475337781012058, 0.01954113133251667, -0.07068190723657608, -0.008202094584703445, 0.0002429750602459535, -0.001272283960133791, 0.06511791795492172, -0.046046845614910126, 0.03704852610826492, 0.005592773202806711, 0.03532176837325096, 0.045816611498594284, -0.03253977373242378, -0.07881685346364975, 0.005568790715187788, -0.003645375370979309, -0.04965385049581528, 0.0732528567314148, 0.008456312119960785, 0.0025469663087278605, 0.06672955304384232, 0.03618514910340309, 0.034151412546634674, -0.018226876854896545, -0.009137420915067196, -0.002482212847098708, 0.03344152122735977, 0.05736669898033142, -0.04362938925623894, -0.03298105299472809, 0.010888161137700081, -0.018361181020736694, -0.015588776208460331, 0.022332720458507538, -0.030544409528374672, -0.03908226266503334, 0.038046207278966904, 0.0266879852861166, -0.00946838315576315, 0.002225597621873021, -0.02129666693508625, 0.019358862191438675, 0.03298105299472809, -0.015876568853855133, -0.02856823243200779, -0.028894396498799324, -0.0055496045388281345, -0.0037341115530580282, -0.011751539073884487, -0.01867775246500969, -0.019953634589910507, -0.019992006942629814, -0.0022100089117884636, 0.005055560264736414, -0.03298105299472809, 0.02394436113536358, 2.7392778065404855e-05, 0.011578863486647606, -0.020490847527980804, 0.038391560316085815, 0.015761451795697212, -0.02031817100942135, 0.002798784989863634, 0.011185546405613422, 0.03630026429891586, 0.03599328547716141, 0.017823968082666397, -0.019013511016964912, 0.05817251652479172, -0.01308497879654169, -0.007669677957892418, 0.010629147291183472, 0.03167639300227165, 0.030525222420692444, -0.008226077072322369, -0.005535214673727751, -0.016385003924369812, -0.033767689019441605, -0.028107762336730957, -0.015838196501135826, 0.029892077669501305, -0.0021860261913388968, -0.007995842956006527, 0.022102486342191696, 0.01981933042407036, -0.04382124915719032, -0.010590774938464165, -0.005611959379166365, 0.011665201745927334, -0.01629866473376751, -0.05525621771812439, -0.011166360229253769, 0.035149093717336655, -0.015991685912013054, 0.012499800883233547, -0.03796946257352829, 0.009310096502304077, -0.026783917099237442, -0.06565512716770172, 0.00047695660032331944, -0.0378735326230526, 0.01580941677093506, -0.03862179443240166, -0.01978095807135105, -0.028856024146080017, -0.05022943764925003, -0.02655368112027645, 0.01566552184522152, 0.04685266688466072, 0.011799504980444908, -0.025095531716942787, -0.07056679576635361, -0.05778879299759865, -0.06730514019727707, -0.01534894946962595, 0.013967543840408325, -0.006571268662810326, -0.03854504972696304, 0.059822529554367065, 0.005741466302424669, 0.01752658188343048, -0.010677113197743893, -0.016874251887202263, 0.01158845704048872, -0.0006673195748589933, 0.004069869872182608, 0.02354145050048828, 0.008959949016571045, 0.035379327833652496, 0.009482773020863533, -0.0503445528447628, 0.011521304957568645, -0.04075146093964577, -0.02244783751666546, -0.0005731873097829521, -0.012423055246472359, -0.018015829846262932, -0.08679831027984619, -0.006451355293393135, 0.04274682328104973, -0.019262930378317833, -0.04927012696862221, 0.00022019146126694977, 0.012106483802199364, -0.045816611498594284, -0.029853705316781998, -0.009372452273964882, 0.02093212865293026, -0.02569030411541462, -0.029258934780955315, 0.022524582222104073, 0.016097210347652435, -0.004930850118398666, 0.03570549190044403, 0.0052186427637934685, -0.005842193961143494, 0.04497241973876953, 0.04524102807044983, -0.025728676468133926, -0.03144615888595581, 0.007180430460721254, 0.028414743021130562, -0.008892797864973545, 0.018015829846262932, -0.0014509554021060467, 0.002770005725324154, 0.018198097124695778, 0.06634583324193954, 0.033786874264478683, -0.02893276885151863, 0.00023323207278735936, -0.055563196539878845, -0.0649644285440445, 0.014610281214118004, 0.0012135262368246913, 0.00710848206654191, 0.06446558982133865, -0.014850107952952385, -0.031753137707710266, 0.012240787036716938, -0.04224798083305359, -0.010331761091947556, -0.011857063509523869, -0.03169557824730873, 0.011809097602963448, 0.009482773020863533, 0.020625149831175804, -0.014264930039644241, 0.014485570602118969, -0.04194100201129913, -0.019493164494633675, 0.02593972347676754, 0.0027412264607846737, 0.01830362156033516, -0.015694299712777138, 0.028664162382483482, 0.001210528425872326, -0.044435206800699234, -0.001592453452758491, -0.008197298273444176, 0.025460069999098778, 0.04497241973876953, -0.034515950828790665, -0.004686226136982441, 0.022332720458507538, 0.044166602194309235, 0.001195539254695177, 0.01052362285554409, -0.009247741661965847, 0.04113518446683884, 0.008806459605693817, -0.010696299374103546, -0.00013512771693058312, -0.04048285260796547, -0.04071308672428131, -0.01115676760673523, -0.009938444942235947, 0.023733312264084816, 0.011933808214962482, -0.021277479827404022, -0.019704213365912437, -0.017200415953993797, -0.004837317392230034, 0.005573587026447058, -0.025882165879011154, -0.01333440002053976, -0.021488528698682785, -0.0036885442677885294, 0.005674314685165882, 0.010226237587630749, 0.03810376673936844, -0.01729634776711464, 0.017200415953993797, -0.024519946426153183, -0.03624270483851433, -0.020068751648068428, 0.02507634647190571, 0.008955152705311775, 0.036261893808841705, 0.014322488568723202, -0.022985050454735756, 0.010379726998507977, 0.02494204230606556, -0.03869853913784027, -0.007530577946454287, -0.00397393899038434, -0.015886161476373672, 0.03583979606628418, 0.025479255244135857, 0.0002431249595247209, 0.006624030880630016, 0.030045567080378532, 0.013564634136855602, -0.007684067822992802, 0.01702774129807949, -0.04673755168914795, -0.03718283027410507, 0.016260292381048203, 0.0029163004364818335, 0.027129268273711205, -0.010609961114823818, 0.01028379611670971, 0.002710048807784915, 0.03269326314330101, 0.008811255916953087, 0.02430889755487442, -0.0022423856426030397, -0.050306182354688644, 0.03167639300227165, -0.003124950220808387, 0.01046606432646513, 0.012010552920401096, -0.02381005696952343, -0.0031897034496068954, -0.008298025466501713, 0.012883524410426617, 0.018236469477415085, -0.005703093949705362, -0.00538652203977108, 0.010811416432261467, -0.01508993562310934, 0.028357183560729027, 0.018341993913054466, 0.013238468207418919, 0.0027963866014033556, -0.053299225866794586, 0.02331121638417244, 0.006791910156607628, -0.0032280758023262024, -0.02079782634973526, 0.03461188077926636, -0.002189623424783349, 0.015588776208460331, 0.03056359477341175, -0.017066113650798798, -0.004103445447981358, 0.020625149831175804, 0.01703733392059803, -0.008571429178118706, -0.0009695019689388573, 0.026093212887644768, 0.02003037929534912, 0.02994963712990284, 0.004643057007342577, -0.04044448211789131, -0.030889760702848434, 0.02908625826239586, 0.048541050404310226, -0.0018850427586585283, -0.02567111700773239, -0.01535854209214449, 0.0050363740883767605, -0.02983452007174492, 0.0075785438530147076, 0.0066480133682489395, 0.02407866343855858, 0.02394436113536358, 0.021239107474684715, 0.03355664014816284, 0.018754497170448303, -0.010063154622912407, -0.015329763293266296, -0.02306179516017437, 0.006412982940673828, -0.03994563966989517, 0.012336717918515205, 0.009564314037561417, -0.03860260546207428, 0.04857942461967468, 0.0009275322081521153, 0.006561675574630499, -0.015262611210346222, -0.007401071488857269, -0.03240546956658363, 0.008437125943601131, -0.02068270929157734, 0.044396836310625076, 0.01930130273103714, -0.00623551057651639, -0.036549683660268784, -0.033633384853601456, 0.005640738643705845, 0.031177552416920662, 0.02893276885151863, 0.0028419538866728544, 0.019358862191438675, 0.01651930622756481, 0.004707810468971729, 0.0052138459868729115, 0.012394276447594166, -0.015243425033986568, -0.032616518437862396, -0.002263969974592328, 0.015886161476373672, -0.012682069092988968, 0.0038540251553058624, -0.004506355617195368, 0.04573986679315567, -0.026112399995326996, -0.013363178819417953, 0.0026884644757956266, -0.012605324387550354, -0.016883844509720802, -0.02242865227162838, -0.010792230255901814, -0.0033383965492248535, -0.04750499874353409, 0.0018094972474500537, -0.025229835882782936, 0.0027963866014033556, 0.07052841782569885, -0.0014581502182409167, -0.020126309245824814, -0.01579023152589798, 0.004177791997790337, 0.017449837177991867, 0.017200415953993797, 0.0107154855504632, -0.006163562182337046, 0.0508817657828331, 0.05963066592812538, -0.02131585404276848, 0.001075625536032021, 0.013545447960495949, 0.0005572987720370293, 0.03148453310132027, 0.025747861713171005, -0.016989368945360184, -0.02054840512573719, -0.015569590032100677, -0.013814054429531097, -0.003954752814024687, -4.5979395508766174e-05, 0.022006556391716003, 0.003194499993696809, -0.01427452266216278, 0.02118154987692833, -0.020107124000787735, -0.026534495875239372, 0.0019737789407372475, 0.04973059520125389, -0.010207051411271095, 0.039408426731824875, 0.021219922229647636, -0.011521304957568645, -0.005285794381052256, -0.003539851401001215, -0.0004256935208104551, -0.03812295198440552, -0.004964425694197416, -0.03695259615778923, 0.01766088418662548, -0.03182988241314888, -0.012682069092988968, -0.0428619422018528, 0.04148053377866745, -0.0020337358582764864, -0.009003117680549622, 0.026476936414837837, -0.06937725096940994, 0.0038516269996762276, 0.01084019523113966, 0.0005854784976691008, -0.012231193482875824, -0.02544088289141655, 0.03119673952460289, -0.03708689659833908, 0.004379246849566698, 0.002611719537526369, -0.008110960014164448, 0.0251722764223814, 0.012173634953796864, 0.03731713443994522, -0.008633784018456936, 0.04827244579792023, -0.007473019417375326, 0.01878327690064907, 0.020337358117103577, -0.007362699136137962, -0.077704057097435, -0.025249021127820015, 0.006604844704270363, 0.0022543768864125013, -0.004599888343364, 0.010753857903182507, 0.01905188336968422, 0.000515029183588922, -0.02455831877887249, 0.002338316524401307, -0.029738588258624077, -0.01459109503775835, -0.0034175394102931023, 0.027781598269939423, 0.0282036941498518, -0.04059797152876854, 0.022735631093382835, 0.007530577946454287, -0.031100807711482048, -0.021219922229647636, -0.006192341446876526, -0.013171317055821419, 0.025364138185977936, 0.009794548153877258, -0.004170597065240145, -0.03436246141791344, -0.033383965492248535, 0.01083060260862112, -0.009223759174346924, 0.012768407352268696, 0.007305140607059002, 0.033403150737285614, -0.0059573110193014145, 0.00034984812373295426, 0.0053577427752316, -0.03135022893548012, -0.010418099351227283, -0.03998401388525963, -0.019099848344922066, 0.019761772826313972, 0.06151091307401657, -0.000922735664062202, 0.005089135840535164, 0.017200415953993797, -0.04846430569887161, 0.0019390039378777146, 0.009127828292548656, -0.02530658058822155, -0.03722120076417923, -0.001275881426408887, -0.006978975143283606, -0.03937005624175072, 0.03371012955904007, 0.03960029035806656, -0.0023958750534802675, 0.005271404515951872, -0.03560956194996834, 0.03443920612335205, -0.02970021590590477, -0.025210648775100708, -0.00990007258951664, -0.01001518964767456, -0.03480374068021774, 0.03167639300227165, -0.0062834760174155235, 0.010926533490419388, 0.026611240580677986, 0.014380047097802162, 0.0018202894134446979, 0.0037748822942376137, 0.016125990077853203, 0.02081701159477234, -0.03184906765818596, 0.0070173474960029125, 0.031139180064201355, 0.00877767987549305, 0.0048445118591189384, 0.0669214203953743, 0.02592053823173046, -0.005592773202806711, -0.005693500861525536, -0.024961229413747787, 0.014389639720320702, -0.010811416432261467, 0.05675273761153221, -0.01615476980805397, 0.03198337182402611, 0.021008873358368874, -0.0015528819058090448, 0.00579902483150363, -0.02569030411541462, 0.06078184023499489, 0.005861380137503147, 0.039792150259017944, -0.03532176837325096, -0.009329283609986305, -0.0001313054672209546, 0.03058278188109398, -0.012739627622067928, -0.0250379741191864, 0.0257094893604517, -0.02693740651011467, -0.025460069999098778, -0.000622351944912225, -0.013574226759374142, -0.0057318732142448425, -0.00495483260601759, 0.036012470722198486, 0.016979774460196495, -0.0074298507533967495, -0.010034375824034214, 0.003983532078564167, 0.023215286433696747, 0.027397874742746353, -0.02795427292585373, 0.00859061535447836, 0.02983452007174492, -0.028126949444413185, -0.012538173235952854, 0.026246702298521996, -0.04359101504087448, 0.019099848344922066, 0.017008554190397263, 0.004113038536161184, 0.008979135192930698, -0.04144216328859329, 0.01629866473376751, -0.010705891996622086, 0.0036022064741700888, 0.03257814422249794, -0.0008903589914552867, 0.011722760275006294, -0.016452154144644737, 0.019617876037955284, -0.021507715806365013, -0.00017312535783275962, 0.002904308959841728, -0.0019773764070123434, 0.019704213365912437, -0.021008873358368874, 0.03933168202638626, -0.027282757684588432, -0.01889839395880699, -0.04408985748887062, -0.039907269179821014, 0.03223279491066933, -0.004069869872182608, 0.025978095829486847, -0.020701894536614418, -0.004079462960362434, 0.013152130879461765, 0.058441124856472015, 0.015147494152188301, 0.005487249232828617, 0.0007350707892328501, 0.00030787833384238183, -0.005928531754761934, 0.014859701506793499, -0.019397234544157982, 0.0338636189699173, -0.007127668242901564, -0.0240594781935215, -0.0013562235981225967, -0.033153731375932693, 0.007218802813440561, 0.02369493991136551, 0.02392517402768135, -0.024385642260313034, -0.02192981168627739, 0.0023359181359410286, -0.0038516269996762276, -0.05372132360935211, 0.01654808595776558, 0.009938444942235947, -0.05928531661629677, 0.028913583606481552, 0.010926533490419388, -0.019876889884471893, -0.025364138185977936, -0.01917659305036068, -0.02043328806757927, -0.011406187899410725, 0.030007194727659225, 0.02457750402390957, -0.008350787684321404, 0.0044799745082855225, -0.00166680000256747, -0.01372771617025137, -0.0035734272096306086, 0.03747062385082245, -0.019138220697641373, 0.03246302902698517, -0.014955632388591766, 0.0016116396291181445, 0.013756495900452137, -0.018639380112290382, 0.056445758789777756, 0.031522903591394424, -0.021335039287805557, 0.05226317048072815, -0.028280438855290413, 0.004796546418219805, -0.02129666693508625, 0.024519946426153183, -0.011684387922286987, 0.0025901352055370808, 0.01535854209214449, -0.0016620033420622349, 0.04055959731340408, -0.0026141179259866476, 0.026342634111642838, 0.010350947268307209, 0.014725398272275925, 0.031906627118587494, -0.006739147938787937, -0.03232872486114502, -0.05095851048827171, 0.00541530130431056, 0.03670317307114601, -0.0032280758023262024, -0.014178591780364513, 0.01132944319397211, 0.04102006554603577, -0.005659924820065498, 0.01629866473376751, 0.07367495447397232, 0.011367815546691418, -0.023368775844573975, -0.010859381407499313, -0.026534495875239372, -0.0018011032370850444, -0.02381005696952343, -0.022102486342191696, 0.024500759318470955, 0.02306179516017437, -0.04401311278343201, -0.013152130879461765, 0.023272844031453133, -0.0070605166256427765, 0.012730034999549389, -0.03317291662096977, -0.0072475820779800415, 0.006350627634674311, -0.003290430875495076, 0.0010594372870400548, 0.004045886918902397, -0.0022963467054069042, -0.02091294340789318, 0.01629866473376751, -0.02893276885151863, 0.01308497879654169, 0.030525222420692444, 0.036914221942424774, 0.02555599994957447, 0.011367815546691418, -0.044550325721502304, 0.02467343583703041, -0.009334079921245575, 0.0199152622371912, 0.013094572350382805, 0.008940762840211391, -0.005021984223276377, 0.01547365915030241, 0.03349908068776131, 0.009223759174346924, 0.037892717868089676, -0.012797186151146889, 0.04109681025147438, -0.00027130465605296195, -0.008355583995580673, 0.020222241058945656, -0.013104164972901344, 0.00394515972584486, 0.04309217631816864, -0.02881765179336071, 0.0050315773114562035, 0.020222241058945656, 0.013852426782250404, 0.004791750106960535, -0.0007092893356457353, -0.014811735600233078, 0.018130946904420853, -0.01716204360127449, -0.026592053472995758, -0.009713007137179375, -0.0048852828331291676, 0.013468703255057335, 0.024385642260313034, -0.0039283717051148415, 0.008950356394052505, 0.013449517078697681, 0.031004877761006355, -0.02831881120800972, 0.02682228945195675, 0.01546406652778387, -0.014322488568723202, -0.008197298273444176, -0.0023143338039517403, -0.030793828889727592, -0.0012686866102740169, -0.04489567503333092, 0.018696939572691917, -0.001697977539151907, 0.03522583842277527, 0.008686546236276627, -0.011732352897524834, -0.008605004288256168, 0.005516028497368097, -0.021392598748207092, 0.012499800883233547, -0.05237828940153122, 0.020394915714859962, 0.030506037175655365, 0.020893756300210953, -0.012125669978559017, -0.01790071278810501, 0.022121673449873924, 0.03367175534367561, 0.001086417818441987, 0.006043648812919855, -0.005679110996425152, 0.016308259218931198, 0.004475178197026253, 0.022889120504260063, 0.00838436372578144, 0.015819011256098747, -0.009295707568526268, 0.017008554190397263, 0.005223439075052738, 0.017593732103705406, 0.022102486342191696, 0.018476298078894615, 0.015243425033986568, -0.005132304970175028, 0.042670078575611115, 0.004235350526869297, -0.013871612958610058, 0.026745544746518135, 0.013516668230295181, -0.01252857968211174, -0.000820809043943882, -0.009871292859315872, 0.016989368945360184, 0.013209689408540726, -0.009573906660079956, 0.006978975143283606, 0.028376368805766106, -0.005372132174670696, 0.02407866343855858, -0.005760652478784323, 0.008628987707197666, 0.0166632030159235, -0.0021188745740801096, 0.012250379659235477, -0.00236589671112597, 0.004902070853859186, 0.01565592736005783, -0.040521226823329926, 0.013957950286567211, 0.027244385331869125, 0.022025741636753082, -0.015003597363829613, 0.009511551819741726, -0.02265888638794422, 0.016576865687966347, -0.05540970712900162, -0.00023952755145728588, 0.023618195205926895, 0.0514189787209034, -0.015972500666975975, 0.024539131671190262, -0.006115596741437912, 0.02392517402768135, -0.009799344465136528, -0.030793828889727592, 0.0034367255866527557, -0.031753137707710266, -0.0007218802929855883, -0.010552402585744858, 0.005021984223276377, -0.017756815999746323, -0.02781997062265873, -0.007664881646633148, -0.0077943881042301655, 0.0009659045608714223, -0.006830282509326935, -0.01603005826473236, 0.001406587311066687, -0.008945559151470661, 0.002717243740335107, 0.0005878767697140574, -0.017891118302941322, -0.008734511211514473, 0.008360380306839943, 0.031158367171883583, -0.019723400473594666, -0.0035062755923718214, -0.025786234065890312, -0.012797186151146889, 0.0037844753824174404, 0.02052921988070011, 0.028376368805766106, -0.023829244077205658, 0.025632744655013084, 0.00042269568075425923, 0.0017027740832418203, 0.008029418997466564, -0.00010260113049298525, 0.04635382816195488, 0.0036213926505297422, 0.053452715277671814, -0.04934687167406082, -0.011262291111052036, -0.010360540822148323, -0.0032424654345959425, 0.00990007258951664, 0.0073914784006774426, 0.041672397404909134, 0.005722280126065016, -0.038257256150245667, -0.037297945469617844, -0.008696138858795166, 0.012020145542919636, -0.0018574626883491874, 0.0015205052914097905, -0.054066672921180725, -0.03357582539319992, -0.005132304970175028, -0.01617395505309105, -0.007525781635195017, -0.014811735600233078, -0.032654888927936554, -0.026611240580677986, 0.010379726998507977, -0.008345991373062134, -0.013324806466698647, 0.018361181020736694, 0.02369493991136551, 0.0015372931957244873, -0.01252857968211174, -0.0012710848823189735, 0.05264689400792122, -0.042286355048418045, -0.008441922254860401, 0.023387961089611053, -0.011060836724936962, 0.03067871183156967, -0.029489168897271156, -0.0032352707348763943, -0.017977457493543625, -0.00970820989459753, -0.020989688113331795, -0.0006547286175191402, -0.006537693087011576, 0.00970341358333826, -0.032904308289289474, 0.02329203113913536, -0.022985050454735756, -0.08081221580505371, 0.03369094431400299, -0.00588536262512207, 0.0013334399554878473, -0.008417938835918903, 0.0003321608528494835, 0.017344312742352486, 0.014389639720320702, 0.005540011450648308, 0.030525222420692444, 0.0023155328817665577, 0.007194819860160351, -0.003395955078303814, -0.01328643411397934, 0.0029594693332910538, 0.0008339995401911438, 0.038679350167512894, 0.013209689408540726, 0.02216004580259323, -0.011607643216848373, -0.015627149492502213, -0.004348069429397583, -0.018975138664245605, -0.027762411162257195, 0.029546726495027542, -0.0033383965492248535, -0.03637700900435448, 0.006197138223797083, -0.0014857302885502577, -0.011559677310287952, 0.008854424580931664, -0.024730993434786797, -0.03303861245512962, 0.034899674355983734, -0.0033479896374046803, 0.0073866816237568855, -0.017382685095071793, 0.011626829393208027, -0.02693740651011467, 0.008518666960299015, 0.004117835313081741, 0.044281717389822006, 0.016701575368642807, -0.006302662193775177, 0.0013981933007016778, 0.02580542117357254, -0.014523942954838276, 0.006307458970695734, 0.023119354620575905, 0.011665201745927334, 0.037067711353302, -0.029738588258624077, -0.006221121177077293, -0.005540011450648308, 0.01465824618935585, -0.01954113133251667, 0.020701894536614418, 0.016720760613679886, 0.008585818111896515, -0.009367655962705612, -0.012394276447594166, 0.00444400031119585, -0.0048445118591189384, -0.004103445447981358, 0.019234152510762215, 0.017104486003518105, 0.004089056048542261, -0.04996082931756973, -0.0035350548569113016, 0.017833560705184937, -0.0005884763086214662, 0.00042389481677673757, -0.030659526586532593, 0.03486130014061928, 0.032136861234903336, 0.017891118302941322, -0.013430330902338028, 0.008254856802523136, 0.009430010803043842, 0.0360892154276371, -0.002400671597570181, 0.007405867800116539, -0.013219282031059265, -0.04067471623420715, 0.009919258765876293, -0.031522903591394424, 0.013957950286567211, 0.014562315307557583, -0.010159085504710674, -0.047044530510902405, 0.01384283322840929, 0.008485090918838978, 0.0002132964291376993, -0.01454312913119793, 0.012499800883233547, -0.00014427112182602286, -0.013929171487689018, 0.0013034614967182279, -0.002120073651894927, 0.009223759174346924, -0.004688624292612076, -0.014802142977714539, -0.01615476980805397, 0.019579503685235977, 0.007070109713822603, -0.017584139481186867, -0.0077943881042301655, 0.0026309057138860226, -0.007257175166159868, -0.007166040595620871, -0.023982733488082886, -0.04102006554603577, -0.03211767598986626, 0.0398305244743824, 0.0056887040846049786, -0.01702774129807949, 0.02680310234427452, 0.006859061773866415, 0.02344552055001259, 0.03493804484605789, 0.010993684642016888, -0.013929171487689018, -0.0016260292613878846, -0.02304260991513729, -0.013056199997663498, -0.027992645278573036, -0.000414001930039376, -0.02106643281877041, -0.03693340718746185, -0.002003757283091545, 0.046430572867393494, 0.006412982940673828, -6.377907993737608e-05, -0.0016955792671069503, 0.0008909585303626955, 0.0192917101085186, -0.0035950117744505405, 0.009103845804929733, 0.0420561209321022, 0.015991685912013054, -0.0214309711009264, -0.0033024223521351814, 0.0015516828279942274, -0.02331121638417244, -0.014562315307557583, 0.008489887230098248, -0.008461108431220055, -0.03330722078680992, 0.013622192665934563, -0.018351586535573006, -0.011837877333164215, 0.05138060823082924, 0.01215444877743721, 0.018888801336288452, 0.042785197496414185, -0.02507634647190571, 0.03211767598986626, -0.000984491198323667, 0.0391206331551075, 0.027647294104099274, 0.024021105840802193, -0.025229835882782936, -0.013296026736497879, 0.012058517895638943, -0.0007578543736599386, -0.032136861234903336, -0.03108162246644497, 0.0002050523617072031, 0.0030074347741901875, -0.024232152849435806, 0.041557278484106064, 0.05264689400792122, -0.01366056501865387, 0.0006895035621710122, 0.0026069229934364557, 0.026016468182206154, -0.04773523285984993, 0.04086657613515854, 0.0001585858262842521, 0.007583340164273977, -0.013487889431416988, -0.011828283779323101, -0.03860260546207428, -0.01447597797960043, 0.0012614917941391468, -0.02317691408097744, 0.013996322639286518, 0.0008501879055984318, -0.019876889884471893, 0.00014277220179792494, 0.001536094001494348, 0.02580542117357254, -0.004911663942039013, 0.03357582539319992, -0.019617876037955284, -0.023905988782644272, -0.006883044261485338, -0.019838517531752586, -0.034017108380794525, 0.04401311278343201, 0.026611240580677986, -0.014092253521084785, 0.0241937804967165, -0.011032056994736195, 0.01639459654688835, 0.012557359412312508, 0.005703093949705362, 0.012509393505752087, 0.0306978989392519, 0.01083060260862112, -0.006489727646112442, 0.010437285527586937, 0.018831241875886917, 0.0019977616611868143, 0.02567111700773239, -0.029623471200466156, 0.01916700042784214, -0.0008513870416209102, -0.019617876037955284, -0.012135262601077557, 0.005875769536942244, 0.03547525778412819, -0.028126949444413185, 0.02806938998401165, -0.001656007720157504, 0.030141498893499374, 0.029489168897271156, 0.008820849470794201, 0.018265249207615852, -0.02120073512196541, 0.02806938998401165, 0.048387560993433, -0.004786953330039978, 0.009794548153877258, 0.04777360334992409, -0.021833879873156548, -0.008163722231984138, -0.03768166899681091, 0.00023188305203802884, 0.023848429322242737, 0.014994004741311073, 0.0026237110141664743, 0.01880246214568615, -0.013996322639286518, -0.02306179516017437, 0.048425935208797455, 0.004813334438949823, -0.010322168469429016, -0.027090895920991898, -0.017497802153229713, 0.00024627268430776894, -0.01459109503775835, 0.019992006942629814, -0.02154608815908432, 0.022639699280261993, 0.01964665576815605, 0.0345735065639019, -0.0054057082161307335, -0.031772322952747345, 0.018888801336288452, 0.0215652734041214, -0.003887600963935256, -0.032770007848739624, -0.0403677374124527, 0.005693500861525536, -0.024980414658784866, 0.015953313559293747, -0.0007050923304632306, -0.00713726133108139, 0.009741785936057568, 0.017833560705184937, -0.0012554960558190942, 0.030774643644690514, 0.006201934535056353, -0.010370133444666862, -0.04961547628045082, -0.0004274922248441726, 0.01133903581649065, -0.02206411398947239, -0.0026404988020658493, 0.026035655289888382, -0.015512031503021717, -0.03371012955904007, 0.04927012696862221, -0.012173634953796864, -0.010936126112937927, 0.04435846209526062, -0.015502438880503178, 0.023138541728258133, 0.02643856406211853, 0.004710208624601364, -0.01122391875833273, -0.008163722231984138, -0.01164601556956768, -0.03848749026656151, 0.0013909984845668077, 0.005942921154201031, 0.03206011652946472, -0.014303302392363548, 0.028740907087922096, 0.030774643644690514, 0.009852106682956219, -0.0025853386614471674, -0.01955072395503521, 0.00713726133108139, 0.015176273882389069, -0.007190023548901081, -0.0027580142486840487, -0.006379406899213791, 0.015137901529669762]

問い合わせ内容と、前提知識を参照する関数

次に、Bot へ寄せられた問い合わせ内容をベクトルデータ化し、前提知識として与えたベクトルデータと突き合わせた後、ChatGPT API で返答を作成する部分を作成します。

問い合わせ内容と前提知識の内容の突き合わせには、コサイン類似度という、ベクトルがどの程度似ているかを判定する手法を用います。

import pandas as pd
import numpy as np
import os
from openai import OpenAI
from scipy.spatial.distance import cosine


def create_context(question, df, max_len=1800):
    """
    質問と学習データを比較して、コンテキストを作成する関数
    """

    client = OpenAI(
        api_key=os.environ.get("OPENAI_API_KEY"),
    )

    # 質問をベクトル化
    model = "text-embedding-3-small"
    q_embeddings = client.embeddings.create(input=question,
                                            model=model).data[0].embedding

    # q_embeddingsを1次配列に変換
    np_array = np.array(q_embeddings)
    flat_array = np_array.flatten()

    # 文字列を数値リストに変換する関数
    def convert_string_to_list(str_emb):
        # 文字列をカンマで分割し、数値に変換
        return [float(num) for num in str_emb.strip('[]').split(',')]

    # embeddings列の各要素を数値リストに変換
    df['embeddings'] = df['embeddings'].apply(convert_string_to_list)



    # 質問と学習データと比較してコサイン類似度を計算し、「distances」という列に類似度を格納
    df['distances'] = df['embeddings'].apply(lambda x: cosine(np.squeeze(flat_array), np.squeeze(np.array(x))))

    # コンテキストを格納するためのリスト
    returns = []
    # コンテキストの現在の長さ
    cur_len = 0

    # 学習データを類似度順にソートし、トークン数の上限までコンテキストに追加する
    for _, row in df.sort_values('distances', ascending=True).iterrows():
        # テキストの長さを現在の長さに加える
        cur_len += row['n_tokens'] + 4

        # テキストが長すぎる場合はループを終了
        if cur_len > max_len:
            break

        # コンテキストのリストにテキストを追加する
        returns.append(row["text"])

    # コンテキストを結合して返す
    return "\n\n###\n\n".join(returns)


def answer_question(question, conversation_history):
    """
    コンテキストに基づいて質問に答える関数
    """

    client = OpenAI(
        api_key=os.environ.get("OPENAI_API_KEY"),
    )

    # 学習データを読み込む
    df = pd.read_csv('embeddings.csv', encoding="utf-8")

    # 質問と学習データを比較してコンテキストを作成
    context = create_context(question, df, max_len=200)
    # プロンプトを作成し、会話の履歴に追加
    prompt = f"あなたはとあるホテルのスタッフです。コンテキストに基づいて、お客様からの質問に丁寧に答えてください。コンテキストが質問に対して回答できない場合は「わかりません」と答えてください。\n\nコンテキスト: {context}\n\n---\n\n質問: {question}\n回答:"
    conversation_history.append({"role": "user", "content": prompt})

    try:
        # ChatGPTからの回答を生成
        response = client.chat.completions.create(
            model = "gpt-3.5-turbo",
            temperature = 0.5,
            messages = conversation_history,
        )

        # ChatGPTからの回答を返す
        return response.choices[0].message.content.strip()

    except Exception as e:
        # エラーが発生した場合は空の文字列を返す
        print(e)
        return ""

Bot として受け答えする部分を作成

最後に、Bot として質問を受け付けし、返答を返す部分を作成していきます。

ちゃんとしたものを作るのが面倒なので、今回はコンソール上で質問入力と返答を表示することにしています。

import os
from openai import OpenAI
from search import answer_question

client = OpenAI(
        api_key=os.environ.get("OPENAI_API_KEY"),
)

# 最初にメッセージを表示する
print("質問を入力してください")

conversation_history = []

while True:
    # ユーザーの入力した文字を変数「user_input」に格納
    user_input = input()

    # ユーザーの入力した文字が「exit」の場合はループを抜ける
    if user_input == "exit":
        break

    # ユーザーの質問を会話の履歴に追加
    conversation_history.append({"role": "user", "content": user_input})

    # 別の関数から回答を取得
    answer = answer_question(user_input, conversation_history)

    # ChatGPTの回答を会話履歴に追加
    conversation_history.append({"role": "assistant", "content": answer})

    print("ChatGPT:", answer)

以下、上記を用いて質問・返答のデモとなります。

ちゃんと前提知識に沿って回答してくれている事が分かりますね。

質問を入力してください:

こんにちは
ChatGPT:こんにちは、いらっしゃいませ!ホテルへようこそ。何かお手伝いできることはありますか?

あなたの知っていることを教えて
ChatGPT: 私はホテルのスタッフですので、ホテルに関する情報やサービスについてお答えすることができます。例えば、客室の設備 やアメニティ、レストランやバーの営業時間、チェックインやチェックアウトの手続き、周辺観光地の情報など、お気軽にお尋ねください。

チェックアウトは何時までですか
ChatGPT: チェックアウト時間は午前11時までとなっております。お時間に余裕を持ってチェックアウトいただけるよう、ご協力をお 願いいたします。もし、遅めのチェックアウトをご希望される場合は、空室状況を確認し、可能な限りの対応をさせていただきますので、フロントにお申し付けください。また、一時的に荷物を預かるサービスもご利用いただけますので、お気軽にお声掛けください。

ペットは同伴できますか
ChatGPT: 申し訳ありませんが、当ホテルではペットの同伴は受け付けておりません。お客様にご不便をおかけしてしまい申し訳あり ませんが、近隣のペットホテルをご紹介させていただくことは可能です。最新の情報を提供できるよう、近隣のペットホテルのリストを常に更新しておりますので、お手数ですがフロントにお尋ねください。どうぞ、ご理解いただけますと幸いです。

煙草を吸いたい
ChatGPT 申し訳ありませんが、当ホテルの客室は全て禁煙となっております。ただし、1階に喫煙室をご用意しておりますので、そちらをご利用いただけます。喫煙室の場所や利用時間については、フロントにお尋ねいただくか、チェックイン時に詳細をご案内いたします。お客様のご理解とご協力をお願いいたします。

このホテルは何人宿泊できますか
ChatGPT 当ホテルでは、お客様一人一人の快適な滞在をお手伝いするため、様々なタイプの客室をご用意しております。客室のタイ プや広さによって、宿泊可能な人数が異なります。具体的な宿泊人数については、ご希望の日程や客室タイプによって異なりますので、お手数ですがフロントにお問い合わせいただくか、予約センターにお問い合わせください。お客様のご要望に合わせた最適な宿泊プランをご提案させていただきます。

以上、何かの参考になれば幸いです。

スポンサーリンク