
LangChain ã® Googleã«ã¹ã¿ã æ€çŽ¢ 飿ºã詊ã
ãLangChainãã«ãGoogleã«ã¹ã¿ã æ€çŽ¢ã飿ºã远å ãããã®ã§ã詊ããŠã¿ãŸããã
åå
1. Googleã«ã¹ã¿ã æ€çŽ¢
ãGoogleã«ã¹ã¿ã æ€çŽ¢ãã¯ãWebãµã€ããã¢ããªã±ãŒã·ã§ã³ã§Googleæ€çŽ¢ã®æ©èœãå©çšããããšãã§ããŸãã
LangChainã®ããã©ã«ãã®æ€çŽ¢APIãSerpAPIããšã®æéæ¯èŒã¯ã次ã®ãšããã§ãã
â SerpAPI
ç¡æç : 1ã¶æã«100ã¯ãšãª
ææç : 5000ã¯ãšãªã§50ãã«
â Googleã«ã¹ã¿ã æ€çŽ¢
ç¡æç : 1æ¥ã«100ã¯ãšãª
ææç : 1000ã¯ãšãªã§5ãã«
2. æ€çŽ¢ãšã³ãžã³IDãšAPIããŒã®ååŸ
Googleã«ã¹ã¿ã æ€çŽ¢ã®ãµã€ãã§ãæ°ããæ€çŽ¢ãšã³ãžã³(ã®èšå®)ãäœæããæ€çŽ¢ãšã³ãžã³IDãšAPIããŒãååŸããŸãã
(1) Googleã«ã¹ã¿ã æ€çŽ¢ã®ãµã€ããéããã䜿ã£ãŠã¿ãããæŒãã
(2) æ°ããæ€çŽ¢ãšã³ãžã³ãäœæã
æ€çŽ¢ãšã³ãžã³ã®ååãšãŠã§ãå
šäœãæ€çŽ¢ãæå®ããŸãã

(3) ãåºæ¬ãã®ãæ€çŽ¢ãšã³ãžã³IDããã³ããŒã

(4) ãããã°ã©ããã£ãã¯ãªã¢ã¯ã»ã¹ããCustom Search JSON APIãã®ãéå§ããããæŒãã

(5) ãããã°ã©ã å¯èœæ€çŽ¢ãšã³ãžã³ (ç¡æç) ãŠãŒã¶ãŒãã®ãããŒã®ååŸããæŒãããAPIããŒããã³ããŒã

3. Colabã§ã®å®è¡
Google Colabã§ã®å®è¡æé ã¯ã次ã®ãšããã§ãã
(1) ããã±ãŒãžã®ã€ã³ã¹ããŒã«ã
# ããã±ãŒãžã®ã€ã³ã¹ããŒã«
!pip install langchain
!pip install openai(2) ç°å¢å€æ°ã®æºåã
èªåã®æ€çŽ¢ãšã³ãžã³IDãšAPIããŒãæå®ããŸãã
# ç°å¢å€æ°ã®æºå
import os
os.environ["OPENAI_API_KEY"] = "<OpenAI_APIããŒ>"
os.environ["GOOGLE_CSE_ID"] = "<Googleã«ã¹ã¿ã æ€çŽ¢_æ€çŽ¢ãšã³ãžã³ID>"
os.environ["GOOGLE_API_KEY"] = "<Googleã«ã¹ã¿ã æ€çŽ¢_APIããŒ>"(3) ããŒã«ã®æºåã
from langchain.agents import ZeroShotAgent, Tool, AgentExecutor, load_tools
from langchain import OpenAI, SerpAPIWrapper, LLMChain
# ããŒã«ã®æºå
tools = load_tools(["google-search"], llm=OpenAI())(4) ããã³ãããã³ãã¬ãŒããšãšãŒãžã§ã³ãã®æºåã
ããã©ã«ãã ãšè±èªã®å¿çã«ãªã£ãŠããŸãããšããããããã«ã¹ã¿ã ãšãŒãžã§ã³ãã«ããŠãŸãã
# ããã³ãããã³ãã¬ãŒãã®æºå
prefix = """次ã®è³ªåã«ã§ããéãçããŠãã ãããæ¬¡ã®ããŒã«ã«ã¢ã¯ã»ã¹ã§ããŸã:"""
suffix = """å§ããŸããã! æçµçãªçããåºããšãã¯ãäžäººç§°ã¯"ãŒã"ãèªå°Ÿã«ã¯"ãªã®ã "ã䜿çšããŠãã ãã
Question: {input}
{agent_scratchpad}"""
prompt = ZeroShotAgent.create_prompt(
tools,
prefix=prefix,
suffix=suffix,
input_variables=["input", "agent_scratchpad"]
)
# ãšãŒãžã§ã³ãã®æºå
llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=prompt)
agent = ZeroShotAgent(llm_chain=llm_chain, tools=tools)
agent_executor = AgentExecutor.from_agent_and_tools(agent=agent, tools=tools, verbose=True)(5) äŒè©±ã®å®è¡ã
agent_executor.run("ãŒã£ã¡ã»ãã»ãã£ãã®äœè
ã®ååã¯ïŒ")> Entering new AgentExecutor chain...
Thought: ãã®è³ªåã«çããããã«ãGoogle Searchã䜿ãå¿
èŠããã
Action: Google Search
Action Input: "ãŒã£ã¡ã»ãã»ãã£ãã®äœè
"
Observation: ãŸããã¿ã€ã ãããMAXã§ããŒã£ã¡ã»ãã»ãã£ãïŒãèŒããŠããã£ãŠãŸã â€å·»çºå£²äžãã¢ãã¡2022幎10~12ææŸéããŠãŸããããã³ã倧奜ãïŒéç¥åã£ãŠãã®ã§ãªãã©ã€ ... ããŒã£ã¡ã»ãã»ãã£ãïŒãïŒBOCCHI THE ROCK!ïŒã¯ãã¯ãŸãããã«ããæ¥æ¬ã®4ã³ã挫ç»ãããŸããã¿ã€ã ãããMAXãïŒè³æç€ŸïŒã«ãŠã2018幎2æå·ãã4æå·ãŸã§ã²ã¹ãé£èŒ ... Nov 29, 2022 ... ãã®çé ãšãããã®ããã¢ãã¡ã仿æå€§çŽã®æ³šç®äœãšãªã£ãŠããããŒã£ã¡ã»ãã»ãã£ããã®äœè
ãã¯ãŸãããã§ããããããšããšã¯ãŸãã¯ãã¡ãããã§ ... Feb 27, 2019 ... ãŒã£ã¡Ã女åé«çÃãã³ããšããç°è²ã®çµã¿åããã話é¡ã®ããŒã£ã¡ã»ãã»ãã£ãïŒããäœè
ã»ã¯ãŸãããå
çã®ãããã¯ãããã€ã³ã¿ãã¥ãŒããå±ãã ... 8 days ago ... ãããŠãçŸåšæŸéäžã®ããŒã£ã¡ã»ãã»ãã£ãïŒããåäœè
ã®ã¯ãŸããããããã³ã掻åã«èå³ãæã¡ã調ã¹äžããäžã§åäœãæãããããšããããã³ã¡ã㣠... 1cmã®åäœæ¹å€ãã€ããïŒæçµåç®åã§äœè
éã«æ
ç·äžå®å®..ããŒã£ã¡ã»ãã»ãã£ãïŒãã¢ãã¡ã®ã€ãããåäœãšæ¯èŒ ... 4 days ago ... ã¹ã¿ãã ; åäœïŒã¯ãŸããã ; ç£ç£ïŒæè€åäžé ; ã·ãªãŒãºæ§æã»èæ¬ïŒåç°æµééŠ ; ãã£ã©ã¯ã¿ãŒãã¶ã€ã³ã»ç·äœç»ç£ç£ïŒãããã ; ã©ã€ããã£ã¬ã¯ã¿ãŒïŒ ... 7 days ago ... ãã³ãã£ãŠçµæ§è€éã§äžççžã§ã¯è¡ããªãããšããæèŠãæããŠãããã¢ãã¡ããŒã£ã¡ã»ãã»ãã£ãïŒããæçµåãè¿ãããæ¬äœã¯ããã€ããã³ã掻åãã ... TVã¢ãã¡ããŒã£ã¡ã»ãã»ãã£ãïŒããšã³ãã£ã³ã°æ å/ããªã«ãæªãã · EDæ åã®ãã£ã©ïŒåå€é代ïŒãäžæãç«ãŠãŠãããšè©±é¡ã« · åå€éä»£äžæãã¡ã³ã¢ãŒããçãŸããŠããŸã ... Feb 25, 2020 ... ããŒã£ã¡ã»ãã»ãã£ãïŒãã®ç¡æè©Šãèªã¿ã§ãïŒ ãããããã ããŒã£ã¡ã¡ãããããšåŸè€ã²ãšãã¯ãã®ã¿ãŒãæããå€ç¬ãªå°å¥³ã ... äœè
:ã¯ãŸããã.
Thought: ã¯ãŸããããããŒã£ã¡ã»ãã»ãã£ãïŒãã®äœè
ã§ããããšãããã£ã
Final Answer: ã¯ãŸããããªã®ã ã
> Finished AgentExecutor chain.
'ã¯ãŸããããªã®ã ã