More Related Content
Similar to AIの取り組み.pdf (20)
More from KunihiroSugiyama1 (12)
AIの取り組み.pdf
- 6. 初期スクラッチのエッセンス
import openai
# OpenAI APIキーを設定----------------------------------------------
openai.api_key = 'sk-*********************'
# ドキュメントの登録関数--------------------------------------------
def upload_document(file_path):
with open(file_path, 'rb') as file:
response = openai.File.create(file=file)
document_id = response['id']
return document_id
# ドキュメントの検索関数--------------------------------------------
def search_document(query, documents):
response = openai.Answer.create(
search_model="davinci",
model="davinci",
question=query,
documents=documents,
examples_context=query
)
return response['answers'][0]['document']
# ドキュメントのファイルパス----------------------------------------
document_path = '*************************/document.txt'
# ドキュメントを登録する----------------------------------
document_id = upload_document(document_path)
# 検索するクエリ(質問)を定義--------------------------------------
search_query = '「XXXをoooしたいが、どうしたらよいでしょうか?」'
# ドキュメントを検索する--------------------------------------------
search_result = search_document(search_query, [document_id])
# 検索結果を出力する------------------------------------------------
print(search_result)
最初スクラッチで記述したソースの抜粋
まともには、動きませんでした。
スライド4
平文のドキュメント
(idは一つ)
- 8. 変更したスクラッチのエッセンス
import openai
# OpenAI APIの設定--------------------------------------------------
openai.api_key = 'sk-*********************'
# ドキュメントの登録------------------------------------------------
def register_documents(documents):
examples = []
for doc in documents:
examples.append({'document': doc['content'], 'metadata': doc['id']})
openai.Answer.create(
search_model="davinci",
examples=examples,
documents=documents
)
# ドキュメントの検索と回答------------------------------------------
def search_documents(query, documents):
search_results = openai.Search.create(
search_model="davinci",
query=query
)
top_result = search_results['data'][0]['document']
answer = ""
for doc in documents:
if doc['id'] == top_result['metadata']:
answer = doc['content']
break
return answer
# ドキュメントを最適化して登録する(簡易的なVector Store)----------
documents = [
{'id': 'doc1', 'content': 'これはドキュメント1です。'},
{'id': 'doc2', 'content': 'これはドキュメント2です。'},
{'id': 'doc3', 'content': 'これはドキュメント3です。'},
]
register_documents(documents)
# 質問文------------------------------------------------------------
query = "ドキュメント2について教えて。"
# ドキュメントを検索する--------------------------------------------
answer = search_documents(query, documents)
# 回答を表示する----------------------------------------------------
print(answer)
・ドキュメント登録時にカテゴリ分けして、
最適化したテキストデータ登録を行う。
・登録内容を意識した質問文を作成すると、
回答が得られた。
メリット :僅かながら改善がみられる
デメリット:データ作成に手間がかかる
※:データ登録数が一定程度ないと
回答が行われない
大雑把な
要約 text
textを最適化
スライド6
- 10. OpenAI API
教育現場で求められる概念図
Vector
Store
質問 入力
回答 表示
LLM1
LLM2
LLM3
Query
JSON
Files2
JSON
Files1
JSON
Files3
JSON
Files4
物
化
地
生
関連項目1
関連項目2
関連項目3
関連項目4
物
化
地
生物学的な
回答を主に
表示
関連内容を
少し表示
データの登録や
作成方法に工夫
が必要
ダッシュボードをイメージ
Vector Storeに極力登録を行い、外部LLMの依存度を
下げる事で、有害コンテンツが表示される可能性を、
下げる効果が期待できると思われる。
スライド8
[物][化][地][生]が、各関連業務名に変わるだけで、ビジネスの現場でも同じことが求められる。