ã¯ããã«
è¿å¹Žã深局åŠç¿ãçšããèªç¶èšèªåŠçæè¡ã®é²å±ãç®èŠãŸããã§ãã
ãã®äžã§ããGPT-3ãã¯ãããšããå€§èŠæš¡èšèªã¢ãã«ïŒLLMïŒã«ã¯å€§ããªå¯èœæ§ãæããŠããŸãã
æè¿ã§ããšãAIæè¡è
以å€ã«ã倧ããªã€ã³ãã¯ããäžããChatGPTãèšæ¶ã«æ°ããã§ãããã
ä»åŸãLLMã®é²åã¯æ¢ãŸããªããšäºæ³ãããŠãããç§ãã¡ãã©ããã£ãп޻çšããããå
·äœçã«æ€èšãã¹ããã§ãŒãºã«å
¥ã£ãã®ã§ã¯ãªãã§ããããã
ããããLLMã宿¥åã«é©çšãããšãªããšãè¶ããªããã°ãªããªã課é¡ãããã€ãåºãŠããŸãã
ä»åã¯ã以äžã«ããã第2ã»ç¬¬3ã®ããŒãã«ãè¶ããããã«åœ¹ç«ã€langchainãšããã©ã€ãã©ãªãã玹ä»ããŸãã
第1ã®ããŒãã«ïŒæ©å¯ããŒã¿ã®æ±ã
LLMã¯OpenAPIã®GPT-3çãã¢ãã«èªäœã¯å
¬éãããŠãããWebAPIã ããæäŸãããŠãããšãããã¿ãŒã³ãå€ãã§ãã
ãã®ãããæ©å¯ããŒã¿ã瀟å€ã«éä¿¡ãããšãªããšãåäŒæ¥ã®ã»ãã¥ãªãã£ã«ãŒã«ãšãã倧ããªå£ãç«ã¡å¡ãããããããŸããã
ã§ããã°ç€Ÿå
ç°å¢ãæ¢ã«å©çšããŠãããããªãã¯ã¯ã©ãŠãäžã«ãã¹ãããã°äžèšã®åé¡ã¯å€å°ç·©åãããã§ãããã
ãã ãLLMã¯æåéããšãŠã巚倧ãªã¢ãã«ã§ãã
äŸãã°ãå
¬éãããŠããLLMã®ã²ãšã€ã§ããBLOOMã¯176Bã®ãã©ã¡ãŒã¿ãæã£ãŠãããæšè«çšã«éååããã¢ãã«ã§ã170GBè¿ããããŸãã
ãã®ãµã€ãºã®ã¢ãã«ãå®çšã¬ãã«ã§åããããšãããšããªã³ãã¬ãµãŒããŒã§ããã°äžåäžå以äžã®ãã®ãå¿
èŠã«ãªãã§ãããã
è€æ°ã®PJã§å
±æããªããšããã®ã¬ãã«ã®æè³ã¯äžã
ã§ããªããããããŸãããã
ãšãªããšãããŒã¿ã®æ±ãçã»ãã¥ãªãã£é¢ãååã«èæ
®ããªããšãããªããªãäžççžã§ã¯ãããŸããã
äžèšã®ããã«ãæ©å¯ããŒã¿ãæ±ãããå Žåã¯éåžžã«ããŒãã«ãé«ããªãããšãèããããŸãã
ä»åã玹ä»ããlangchainã¯ããã®ããŒãã«ãè¶ããå©ãã«ã¯ãªããŸãããåèªé 匵ã£ãŠãã ããã
第2ã®ããŒãã«ïŒã¢ãã«ã®ã¢ããããŒã
LLMã¯éåžžã«å€§èŠæš¡ãªããã¹ãããŒã¿ãå
ã«åŠç¿ãããŸãããåŠç¿ããŒã¿ã«å«ãŸããªãææ°ã®æ
å ±ã忥çã»äŒæ¥ã®å°éç¥èã«ã€ããŠã¯çããããªãããšãå€ã
ãããŸãã
ããšãã°ã2022/12/18æç¹ã§ChatGPTã«ããã±ã¢ã³ã®ææ°äœãã蚪ãããšããã±ããã¢ã³ã¹ã¿ãŒ ãœãŒã/ã·ãŒã«ãããšçããè¿ã£ãŠããŸããå°ãæããã§ããã

ãã®åé¡ã解決ãããããæ°ããããŒã¿ãå°éç¥èãå«ãããŒã¿ãå ããåŠç¿ããŒã¿ãå
ã«ã¢ãã«ã®ååŠç¿ããããšãªããšãè«å€§ãªã³ã¹ããããããŸãã
OpenAIçã®ãµãŒãã¹æäŸè
åŽãã¢ãã«ã®ææ°åãæ¥çç¹ååã¢ãã«ã®æäŸçãè¡ã£ãŠãããå¯èœæ§ããããŸãããèªåãã¡ã§ã³ã³ãããŒã«ãããå Žé¢ãããããšã§ãããã
第3ã®ããŒãã«ïŒåºåã®èª€ããžã®å¯Ÿå¿
LLMã¯èª€ã£ãæ
å ±ãããçå®ã§ãããã®ããã«åºåããããšããããŸãã
ããã¯ãåŠç¿ããŒã¿ã«å«ãŸããŠããã»ããªãã«é¢ãããèµ·ããããããšã§ãã
ããããããäŸãšããŠãèšç®åé¡ã誀çããäŸãæããŠã¿ãŸãã
2022/12/18æç¹ã®ChatGPTã§ã®çµæã§ãããç«åŒãšéäžãŸã§ã®èšç®çµæã¯æ£ããã®ã§ãããæåŸã®èšç®ã§æããããã¹ãããŠããŸããŸããã

宿¥åã«é©çšããäžã§ã¯ã誀ã£ãåºåãæžããäºå®ã«ç«èããåçããããçºã®å·¥å€«ãå¿
èŠã«ãªãã§ãããã
第2ã»ç¬¬3ã®ããŒãã«ãè¶ããããã«ã¯
第2ã»ç¬¬3ã®ããŒãã«ãè¶ããããã«ã¯ã©ã®ãããªå¯Ÿçãèããããã§ããããã
1ã€ã®æ¡ãšããŠãå¿
èŠã«å¿ããŠå€éšãªãœãŒã¹ã掻çšããããšãèããããŸãã
ããšãã°ãã¢ãã«ãç¥ããªãããšãããã°ãGoogleæ€çŽ¢ãããããŒã¿ããŒã¹ã«åãåãããã人ã«èãããããä»çµã¿ãããã°è¯ãããã§ããã
ãŸããèšç®åŒã«æ£ããçãããããã°ã©ã ãå®è¡ãããããããã«èšèªåŠçç³»ãçšããã®ãè¯ãã§ãããã
è€æ°ã®LLMãåŸæäžåŸæãèæ
®ããŠçµã¿åãããããšããããããããŸããã
äžèšãå®çŸããããã«ã¯ãäžããããåé¡ãéšååé¡ã«åè§£ããåéšååé¡ã«ã€ããŠã©ã®ãããªè§£æ±ºçããšããïŒã©ã®å€éšç¥èã«åŠçãä»»ãããïŒå€æããLLMãå¿
èŠã«ãªãããã§ããã
ãã®ããã«LLMãåé¡è§£æ±ºã®ããã«å¿
èŠãªå€éšãªãœãŒã¹ã®éžæã»çµæèгå¯ãç¹°ãè¿ããŠæçµçµæãåŸãä»çµã¿ã¯ãAction-Driven LLMãšããŠçŸåšæ³šç®ãããŠããŸãã
ãã®Action-Driven LLMãèªåãã¡ã§ãäœããããšããæ¹ã®ããã«ãä»åã¯langchainãšããã©ã€ãã©ãªãã玹ä»ããŸãã
langchainã®ã玹ä»
langchainã¯ãLLMãšå€éšãªãœãŒã¹ïŒããŒã¿ãœãŒã¹ãèšèªåŠçç³»çïŒãçµã¿åãããã¢ããªã±ãŒã·ã§ã³ã®éçºæ¯æŽãç®çãšããŠHarrison ChaseãããéçºããPythonã©ã€ãã©ãªã§ãã
ãã®èšäºã§ã¯ã2022/12/17æç¹ã§ææ°ããŒãžã§ã³ã®0.0.39ã«ã€ããŠãå©ç𿹿³çãç°¡åã«ã玹ä»ããŸãã
ãŸã ãŸã 掻çºã«éçºãç¶ããŠããç¶æ
ã®ãããææ°ã®æ
å ±ã¯ä»¥äžããåç
§ããã ããã°ãšæããŸãã
æŠèŠ
langchainã®æäŸããæ©èœã¯ã以äžã®4ã€ã®ã«ããŽãªã§æŽçãããŠããŸãã
ããããã«ã€ããŠãæŠèŠãšå©çšäŸã«ã€ããŠç޹ä»ããŠãããŸãã
- LLM and Prompts
- Chains
- Agents
- Memory
LLM
langchainã«ãããLLMã¯ãGPT-3çã®LLMã®ã¯ã©ã€ã¢ã³ããšããŠæ©èœããŸãã
çŸæç¹ã§å¯Ÿå¿ããLLMãµãŒãã¹ã¯ä»¥äžã®éãã§ãã
ææ°æ
å ±ã¯ãã¡ããã確èªãã ããã
ãŸããä»»æã®LLMã«å¯Ÿå¿ããããå Žåã¯Custom LLMãäœæããã°è¯ãããã§ãã
以äžã¯ãOpenAIã®GPT-3ãå©çšããã·ã³ãã«ãªäŸã瀺ããŠããŸãã
from langchain.llms import OpenAI
# ã¢ãã«åãæå®ããªãå Žåããtext-davinci-003ããå©çšãããŸã
llm = OpenAI(temperature=0.9)
text = "æè¡èšäºã®ã¿ã€ãã«ããããªã«çæããŠãããAIã®åç§°ãèããŠãã ããã"
ããã¯ãã¿ã€ãã«ãžã§ãã¬ãŒã¿ãŒAIã
Prompts
LLMã«å
¥åããããã¹ãããããã³ããããšåŒã³ãŸããããã®ããã³ããã管çãããã®ã§ãã
ããã³ããã®äžã«ãŠãŒã¶ãŒå
¥åçãåã蟌ããããããã³ãã¬ãŒãæ©èœãæäŸãããŠããŸãã
from langchain.prompts import PromptTemplate
prompt = PromptTemplate(
input_variables=["target"],
template="æè¡èšäºã®ã¿ã€ãã«ããããªã«çæããŠãããAIã®{target}ãèããŠãã ããã",
)
print(llm(prompt=prompt.format(target="ã»ãŒã«ã¹ãã€ã³ã")))
ã»AIã«ããèšäºã®ã¿ã€ãã«çæã¯ãæéãç¯çŽããããèŠèŽè
ã«åã£ãèšäºãæžãããšãå¯èœã«ããŸãã
ã»AIã¯ãèšäºã®èšŽæ±åãé«ããæé©ãªã¿ã€ãã«ãææ¡ããåºååå
¥ãæå€§åããŸãã
ã»AIã«ããèšäºã¿ã€ãã«çæã§ã¯ããµã€ãäžã®ç»åããããŒãªã©ã®èŠèŠå¹æãããã«é«ããããå€ãã®èŠèŽè
ãåŒãä»ããããã®å¹æçãªã¿ã€ãã«ãæžãããšãå¯èœã«ãªããŸãã
ã»AIã«ããã¿ã€ãã«çæã䜿
ïŒéäžã§åºåãåããŠããŸããïŒããã³ããã®ãã³ãã¬ãŒãã«ãŠãŒã¶ãŒå ¥åãå²ãåœãŠãäžã§çµæãçæãããŠããããšãããããŸãã
Chains
Chainã¯ãLLMã®èœåãæ¡åŒµããäžã§éèŠãªæ©èœã§ãã
Chainã«ãããGoogleæ€çŽ¢ãããŒã¿ããŒã¹ãPython REPLçã®å€éšãªãœãŒã¹ãè€æ°ã®LLMãæ±ºããããé åºã§çµã¿åãããããšãã§ããŸãã
ïŒlangchainã§ã¯ãChainã§çµã¿åããããåèŠçŽ ã®ããšãToolãšåŒã³ãŸããïŒ
çŸæç¹ã§ã¯ä»¥äžã®ãããªChainãæäŸãããŠããŸãïŒäžéšæç²ïŒã
ææ°æ
å ±ã¯ãã¡ããã確èªãã ããã
- LLMChain
- æãã·ã³ãã«ãªChainã§ãLLMã«Promptãå ¥åããŠçµæãè¿ã
- LLMMathChain
- ãŠãŒã¶ãŒã®æ°åŠçãªåãã«é¢ããå ¥åãPythonã³ãŒãã«å€æããŠPython REPLã«å ¥åãçµæãè¿ã
- SQLDatabaseChain
- ãŠãŒã¶ãŒã®å ¥åãSQLiteçã®DBã«åãåãããã¯ãšãªã«å€æãåãåãããçµæãè¿ã
- SequentialChain/SimpleSequentialChain
- è€æ°ã®Chainãæ±ºããããé åºã§çµã¿åããã
以äžã®äŸã§ã¯ãåæ®µã®LLMã®åºåãåŸæ®µã®LLMã®å ¥åãšããŠããŸãã
from langchain.llms import OpenAI
from langchain.chains import LLMChain, SimpleSequentialChain
from langchain.prompts import PromptTemplate
llm = OpenAI(temperature=.7)
template = """ããªãã¯æ°ååã®éçºãæ
åœããŠããŸããæ°ååã®ã¿ãŒã²ãããäžããããããã¿ãŒã²ããã«å£²ããæ°ååã®ã¢ã€ãã¢ãåºããŠãã ããã
ã¿ãŒã²ãã: {target}
æ
åœè
: 以äžãæ°ååã®ã¢ã€ãã¢ã§ãã"""
prompt_template = PromptTemplate(input_variables=["target"], template=template)
synopsis_chain = LLMChain(llm=llm, prompt=prompt_template)
llm = OpenAI(temperature=.7)
template = """ããªãã¯çµå¶è
ã§ããæ°ååã®ã¢ã€ãã¢ãäžããããããçµå¶è
ã®èгç¹ããæ¹å€çã«ã¬ãã¥ãŒãããŠãã ããã
ã¢ã€ãã¢:
{idea}
çµå¶è
ïŒ
"""
prompt_template = PromptTemplate(input_variables=["idea"], template=template)
review_chain = LLMChain(llm=llm, prompt=prompt_template)
overall_chain = SimpleSequentialChain(chains=[synopsis_chain, review_chain], verbose=True)
review = overall_chain.run("éå€ã«1æé以äžããã£ãŠãã20代ã®ç·æ§")
> Entering new SimpleSequentialChain chain...
â»æ³šïŒå段LLMã®åºå
ã»æºåž¯çšé³æ¥œãã¬ãŒã€ãŒïŒä»ã®æè¡ã§ã¯å°ããããã€é«é³è³ªãªé³æ¥œãã¬ãŒã€ãŒãéçºããããšãå¯èœã§ããé倿éãæ¥œããéããããã®é³æ¥œã楜ãããããã«ããŸãã
ã»ããŒãããœã³ã³å°çšããã°ïŒé²æ°Žãèè¡ææ§ãªã©ãåããé·æéã®éå€äžã«ããŒãããœã³ã³ãå®å
šã«ä¿è·ããããã®ããã°ãéçºããŸãã
ã»ã¢ãã€ã«ããããªãŒïŒæºåž¯é»è©±ãªã©ã®æ©åšãé·
â»æ³šïŒåŸæ®µLLMã®åºå
ã»æºåž¯çšé³æ¥œãã¬ãŒã€ãŒïŒãã®ã¢ã€ãã¢ã¯é©æ°çã§ãããåžå Žãååã«æ¡å€§ããŠãããã©ãããèæ
®ããªããã°ãªããŸãããæè¡çãªå°é£ããããããããŸããããä»ã®ãã¬ãŒã€ãŒãšç«¶äºã§ãããµãŒãã¹ã¬ãã«ãæäŸã§ãããã©ããã確èªããå¿
èŠããããŸãã
ã»ããŒãããœã³ã³å°çšããã°ïŒãã®ã¢ã€ãã¢ã¯éåžžã«é
åçã§ããããã®è£œåãç¹å®ã®ã¿ãŒã²ããåžå Žã®ããã«éçºã§ãããã©ãããèæ
®ã
> Finished SimpleSequentialChain chain.
Agents
Chainã§ã¯ãããããæ±ºããããé åºã§Toolãå®è¡ãããŸããããã¢ããªã±ãŒã·ã§ã³ã«ãã£ãŠã¯å
¥åã«å¿ããŠé©åãªToolãéžæããŠå®è¡ãããããšãããã§ãããã
ãã®ãããªããšãå®çŸããã®ãAgentã§ãã
Agentã¯å
éšçã«LLMãçšããŠãããå
¥åã«å¿ããŠã©ã®Toolsãã©ããªé åºã§äœ¿çšããããæ±ºå®ããŸãã
çŸæç¹ã§ã¯ä»¥äžã®ãããªAgentãæäŸãããŠããŸãã
ææ°æ
å ±ã¯ãã¡ããã確èªãã ããã
-
ReAct: Synergizing Reasoning and Acting in Language Modelsãšããè«æã§ææ¡ãããä»çµã¿ãåçŸããAgentãšããŠã以äžã®2çš®é¡ãæäŸãããŠããŸãã
- zero-shot-react-description
- Toolã®descriptionïŒèª¬ææïŒãããšã«ãã©ã®Toolãéžæãããæ±ºå®ããŸã
- react-docstore
- è«æã®ä»çµã¿ãããå¿ å®ã«åçŸããAgentã§ã
- ããã¥ã¡ã³ããæ€çŽ¢ããSearchãšãæ€çŽ¢çµæããçšèªãæ¢ãLookupãšãã2ã€ã®Toolãçšæããå¿ èŠããããŸã
- zero-shot-react-description
- self-ask-with-search
- Measuring and Narrowing the Compositionality Gap in Language Modelsãšããè«æã§ææ¡ãããä»çµã¿ãåçŸããAgentã§ã
- Googleæ€çŽ¢çãçšããŠãèªåèªçã»æ€çŽ¢ãç¹°ãè¿ããªããçããå°ããŸã
以äžã¯zero-shot-react-description AgentãçšããŠãPythonREPLãGoogleæ€çŽ¢ïŒSerpAPIãå©çšïŒãçµã¿åãããŠåé¡ãè§£ãäŸã§ãã
from langchain.agents import initialize_agent, Tool
from langchain.llms import OpenAI
from langchain import LLMMathChain, SerpAPIWrapper
llm = OpenAI(temperature=0)
search = SerpAPIWrapper()
llm_math_chain = LLMMathChain(llm=llm, verbose=True)
tools = [
Tool(
name = "Search",
func=search.run,
description="useful for when you need to answer questions about current events"
),
Tool(
name="Calculator",
func=llm_math_chain.run,
description="useful for when you need to answer questions about math"
)
]
llm = OpenAI(temperature=0)
agent = initialize_agent(tools, llm, agent="zero-shot-react-description", verbose=True)
agent.run("æ¥æ¬ã§äžçªé«ãå±±ã®é«ãã¯äœã¡ãŒãã«ã§ãã?ãã®é«ãã®5乿 ¹ãæ±ããŠãã ããã")
> Entering new ZeroShotAgent chain...
æ¥æ¬ã§äžçªé«ãå±±ã®é«ãã¯äœã¡ãŒãã«ã§ãã?ãã®é«ãã®5乿 ¹ãæ±ããŠãã ããã
Thought: I need to find the height of the highest mountain in Japan and then calculate its fifth root.
Action: Search
Action Input: "highest mountain in Japan"
Observation: Mount Fuji
Thought: I need to find the height of Mount Fuji
Action: Search
Action Input: "height of Mount Fuji"
Observation: 12,388â²
Thought: I need to convert this to meters
Action: Calculator
Action Input: 12,388 * 0.3048
> Entering new LLMMathChain chain...
12,388 * 0.3048
Answer: 3760.544
> Finished LLMMathChain chain.
Observation: Answer: 3760.544
Thought: I need to calculate the fifth root of 3760.544
Action: Calculator
Action Input: 3760.544^(1/5)
> Entering new LLMMathChain chain...
3760.544^(1/5)
```python
print(3760.544**(1/5))
```
Answer: 5.188599325914775
> Finished LLMMathChain chain.
Observation: Answer: 5.188599325914775
Thought: I now know the final answer
Final Answer: The height of the highest mountain in Japan is 3760.544 meters and its fifth root is 5.188599325914775.
> Finished ZeroShotAgent chain.
The height of the highest mountain in Japan is 3760.544 meters and its fifth root is 5.188599325914775.
äžèšã®äŸã§ã¯ãåãã«çããããã«åé¡ã以äžã®ããã«ãã¬ãŒã¯ããŠã³ããŠããããšãããããŸãã
- æ¥æ¬äžé«ãå±±ãæ±ããããã«ãGoogleæ€çŽ¢ãå©çšããããšã決å®
- æ€çŽ¢ã«ãããå¯å£«å±±ãã§ããäºãç¹å®
- å¯å£«å±±ã®é«ããæ±ããããã«ãGoogleæ€çŽ¢ãå©çšããããšã決å®
- æ€çŽ¢ã«ããã12,388â²ãã§ããäºãç¹å®
- åŸãããå¯å£«å±±ã®é«ãã®åäœããã£ãŒãã ã£ãã®ã§ãã¡ãŒãã«ã«å€æããããã«LLMMathChainïŒæ°åŠçãªåãã«çããããã®ToolïŒãçšããããšã決å®
- ããã§ãLLMMathChainã§LLMãçæããæ°åŒèªäœã¯æ£ããã£ããã®ã®ãPythonã³ãŒããçæããã«LLMãçŽæ¥çããåºããŠããŸããã3760.544ããšèª€ç
- å¯å£«å±±ã®é«ãã®äºä¹æ ¹ãæ±ããããã«ãLLMMathChainãçšããããšã決å®
- LLMãçæããæ°åŒãå®è£ ããPythonã³ãŒããçæã»å®è¡ããã5.188599325914775ããšè§£ç
- åŸãããçããæçµçµæã§ãããšå€æããçµæãåºåããŠChainãçµäº
éäžã®åŠçã§ééããç¯ããŠããŸã£ãŠãããã®ã®ãçããåºãããã»ã¹ããã¬ãŒã¹ã§ããã®ã§å©çšè ãæ£ãããæ€èšŒããããšãæ¯èŒç容æãªç¹ã¯è¯ãã§ããã
Memory
ããã©ã«ãã§ã¯ChainãAgentã¯ã¹ããŒãã¬ã¹ã§ããããã£ãããããçãå®çŸããããã«ã¯å段ã®ç¶æ
ãèšæ¶ããŠããå¿
èŠããããŸãã
Memoryã¯ãããå®çŸããããã®ãã®ã§ãã
çŸæç¹ã§ã¯ã以äžã®MemoryãæäŸãããŠããŸãïŒçŸç¶ãªãã¡ã¬ã³ã¹ãç¡ããããªã®ã§ãããã¥ã¡ã³ãã®å©çšäŸããœãŒã¹ãèŠãã®ãè¯ãããšæããŸãïŒã
- ConversationBufferMemory
- åæ®µãŸã§ã®å ¥åã»åºåããã®ãŸãŸèšæ¶ãã
- ConversationalBufferWindowMemory
- k段åãŸã§ã®å ¥åã»åºåããã®ãŸãŸèšæ¶ãã
- ConversationSummaryMemory
- åæ®µãŸã§ã®å ¥åã»åºåãLLMã§ãµãã©ã€ãºããŠèšæ¶ãã
Memoryãå©çšããäŸãšããŠã¯ãChatGPT CloneããšãŠãé¢çœãã§ãã
ïŒããã£ããAIãChatGPTãå
éšã«ä»®æ³ãã·ã³ãäœæãã詊ã¿ãå
éšã«ã¯ä»®æ³ã€ã³ã¿ãŒããããååšãChatGPTãåµé ããäžçã«ãChatGPTãååšãããlangchainãšGPT-3ã§åçŸãããã®ã§ããïŒ
ãŸãšã
langchainãçšããããšã§ãLLMåäœã§ã¯å®çŸã§ããªãé«åºŠãªã¢ããªã±ãŒã·ã§ã³ãæ¯èŒçç°¡åã«äœããããšãã€ã¡ãŒãžã§ããã®ã§ã¯ç¡ãã§ããããã
ãšã¯ããã宿¥åã§é©çšãããšãªããšãŸã ãŸã 解決ããªããŠã¯ãªããªã課é¡ã¯ããã€ããããŸãã
- èªåãã¡ã«é©ããå€éšãªãœãŒã¹ãç¹ã«ããŒã¿ããŒã¹ãæ€çŽ¢ã·ã¹ãã ãã©ã®ããã«çšæãç¶æç®¡çããŠããã
- å€éšãªãœãŒã¹ãä¿¡é Œã§ããªããã°æå³ããããŸããã®ã§ãåŠäœã«è ãããªãããã«ãããã倧åã§ã
- ã©ããã£ãŠé©åãªå€éšãªãœãŒã¹ãéžæã§ããAgentãçšæããã
- AgentãçšããLLMããã¡ã€ã³ãã¥ãŒãã³ã°ãããããã³ãããã«ã¹ã¿ãã€ãºããããšãã£ã工倫ãå¿ èŠã«ãªãããã§ã
- çŸæç¹ã§ã¯APIãå®å®ããŠããããããŒãžã§ã³ãäžãããšã³ãŒããåããªããªãããšããããã
- ããã¯æéã解決ããŠãããããšãæåŸ ããŠããŸã
äžèšã®ãããªèª²é¡ã¯ãããã®ã®ãå人çã«ã¯æ§ã
ãªå Žé¢ã§å¿çšã§ããããªé
åã匷ãæããŠããŸãã
ããã¥ã¡ã³ããèŠãªããã§ããã°å®¹æã«äœ¿ãå§ããããŸãã®ã§ãæ¯éçæ§ã䜿ã£ãŠã¿ãŠãã ããã
ïŒäœè£ãããã°ãä»åå®éšã«çšããããŒãããã¯ãå ¬éããããã§ããïŒ
远èšã»åèãªã³ã¯
èšäºå
¬éåŸãæ¥æ¬ã§ãå°ããã€langchainã«èå³ãæã€æ¹ãå¢ããŠããããã§ããããéãã§ãïŒç§ã®èšäºãšã¯ç¡é¢ä¿ããã§ããïŒã
ãã詳ããå©ç𿹿³ã®èšäºãæžããŠããæ¹ãããã£ããã£ãã®ã§ããèå³ã®ããæ¹ã¯ãã²ãã¡ããã芧ãã ããã