切換語言為:簡體

基於langchain快速搭建AI-Agent

  • 爱糖宝
  • 2024-10-18
  • 2043
  • 0
  • 0
什麼是AIAgent?

是一種能夠感知環境、進行決策和執行動作的智慧實體,也可以稱為“人工智慧代理”或“智慧體”。

  • 其核心採用LLM作為Agent的大腦,利用大模型的決策與思考能力,透過記憶模組,結合大模型決策,實現長期、短期規劃能力。

  • 透過整合視覺、聽覺甚至觸覺資訊、外部資訊輸入,展現出多型別、多感官、多模態的感知與理解能力,甚至實現環境感知。

  • 透過瞭解和使用各種工具,AI能夠擴充套件自身能力甚至與外界產生互動。

基於langchain快速搭建AI-Agent

1. 替換預設請求地址為自定義API
 import { ChatOpenAI } from '@langchain/openai';
 const chat = new ChatOpenAI({
      model: 'gpt4o',
      temperature: 0,
      apiKey: '****',
      configuration: {
        baseURL: 'https://www.xx.com/v1',// 替換
      },
    });

2. 搭建自定義Tools工具集
import { DynamicTool } from 'langchain/tools';
// 定義callback函式
function getWeather(date: string) {
  console.log('Func Calling: 執行getWeather', date);
  // 這裏應該是實際的天氣API呼叫
  return `${date} 的天氣是陰雨天`;
}
function getWeatherScore(weather: string) {
  console.log('Func Calling: 執行getWeatherScore', weather);
  // 這裏應該是實際的天氣API呼叫
  return `${weather} 的得分是99分`;
}

// 定義callback工具
const weatherTool = new DynamicTool({
  name: 'Weather',
  description: '獲取某天的天氣,需要傳入日期',
  func: async (date: string) => getWeather(date),
});
const weatherScoreTool = new DynamicTool({
  name: 'WeatherScore',
  description: '獲取某個天氣的推薦出行得分,需要傳入天氣',
  func: async (wearcher: string) => getWeatherScore(wearcher),
});
// 定義工具集合
const tools = [weatherTool, weatherScoreTool];

3. 建立初始化提示詞
import { ChatPromptTemplate } from '@langchain/core/prompts';
// 建立初始化提示詞
const prompt = ChatPromptTemplate.fromMessages([  ['system', 'You are a helpful assistant'],
  ['placeholder', '{chat_history}'],
  ['human', '{input}'],
  ['placeholder', '{agent_scratchpad}'],
]);

4. 建立AI-Agent工作流
import { AgentExecutor, createOpenAIToolsAgent } from 'langchain/agents';

// 建立智慧體
const agent = await createOpenAIToolsAgent({
  llm: chat,
  tools,
  prompt,
  streamRunnable: false,
});

// 建立執行器
const agentExecutor = new AgentExecutor({
  agent,
  tools,
});

const result = await agentExecutor.invoke({
  input: `
    # 問題
    你好,告訴我2024-10-01日天氣如何,並告訴我那個天氣的出行得分
    # step1
    請先呼叫獲取天氣工具查詢天氣
    # step2
    以獲取的天氣呼叫得分查詢工具
    # step3
    透過分佈查詢,聚合結果,給我想要的答案`,
});

Agent執行結果

基於langchain快速搭建AI-Agent

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.