1.はじめに
LLMによるデータ取得や分析が盛況なので、特許データもLLMから呼び出せるようにAPIになっていると便利なはず(LangChainを使うにしてもGPT Functionを使うにしても)。
ということで、特許データをAPIでアクセスできるようなものはないか、と調べました。
そこで発見したのがLens.orgのAPI。さっそく利用申し込み。14日間フリートライアルでもらいました。ブラウザからアクセスする機能でも有名なようですね。
2.操作方法
swaggerを見ても説明がcurlなどだけだったので、少し苦労した部分がありました。
pythonでやるとこんな感じ、というのを書いていきます。
とりあえず基本的な呼び出し。GETとPOSTに分かれてますが複雑な検索式を見越してPOSTで操作します。
import requests
import urllib
# トークンを取得する
token = "***" #ログイン後の画面で「SUBSCRIPTIONS」に行って生成
# ヘッダーを設定
headers = {"Authorization": "Bearer {}".format(token),"content-type": "application/json"}
url = "https://api.lens.org/patent/search"
bosy部分の作り方をいくつか。この辺参照に
#example1
payload = {
"query": {
"terms": {
"abstract": ["metamaterial"]
}
}
,"include":["lens_id", "abstract"]
}
複合検索に対応するのはこの入れ方
#exmple2
payload = {"query": "(title:javascript AND applicant.name:(IBM)) AND year_published:[2000 TO 2018]"}
複合検索はこちらのほうが丁寧
#example3
payload={
"query": {
"bool": {
"must": [
{
"match": {
"cited_by_patent": "true"
}
},
{
"match": {
"publication_type": "GRANTED_PATENT"
}
},
# {
# "match_phrase": {
# #"applicant.name": "IBM"
# "abstract":"metamaterial"
# }
# },
{
"match": {
"class_ipcr.symbol":"G06Q30/00"
#"applicant.residence": "JP"
#"priority_claim.jurisdiction":"JP"
}
}
]
}
}
,"include":["lens_id", "biblio.invention_title","biblio.application_reference.doc_number"]
}
など、"include":["lens_id", "biblio.invention_title","biblio.application_reference.doc_number"]
という部分は、レスポンスでほしい項目を指定しておけばもらえるものです。
3.その他
使い方としては、LangChain TaggingやAutoGPTで使う道具として特許データをAPIから呼び出して、それぞれLLMでいい感じに加工していってもらう、という形になります。
LLM+APIによって、特許調査や分析がかなり省力化・自動化できずはずで、その辺を進めていく予定です。Gorilla でも独自のAPI拡張はできるはずなので、これも試していきたいです。
Comments