import{ChatOpenAI}from"@langchain/openai";import{tool}from'@langchain/core/tools';import{z}from'zod';import{createReactAgent}from"@langchain/langgraph/prebuilt";constmodel=newChatOpenAI({model:"gpt-4o",});constgetWeather=tool((input)=>{if(['sf','san francisco','san francisco, ca'].includes(input.location.toLowerCase())){return'It\'s 60 degrees and foggy.';}else{return'It\'s 90 degrees and sunny.';}},{name:'get_weather',description:'Call to get the current weather.',schema:z.object({location:z.string().describe("Location to get the weather for."),})})constagent=createReactAgent({llm:model,tools:[getWeather]});
letinputs={messages:[{role:"user",content:"what is the weather in SF?"}]};letstream=awaitagent.stream(inputs,{streamMode:"values",});forawait(const{messages}ofstream){letmsg=messages[messages?.length-1];if(msg?.content){console.log(msg.content);}elseif(msg?.tool_calls?.length>0){console.log(msg.tool_calls);}else{console.log(msg);}console.log("-----\n");}
what is the weather in sf?-----[ { name: 'get_weather', args: { location: 'San Francisco, CA' }, type: 'tool_call', id: 'call_wfXCh5IhSp1C0Db3gaJWDbRP' }]-----It's 60 degrees and foggy.-----The weather in San Francisco is currently 60 degrees and foggy.-----
现在让我们尝试一个不需要工具的问题
inputs={messages:[{role:"user",content:"who built you?"}]};stream=awaitagent.stream(inputs,{streamMode:"values",});forawait(const{messages}ofstream){letmsg=messages[messages?.length-1];if(msg?.content){console.log(msg.content);}elseif(msg?.tool_calls?.length>0){console.log(msg.tool_calls);}else{console.log(msg);}console.log("-----\n");}
who built you?-----I was developed by OpenAI, an AI research and deployment company.-----