mirror of
https://github.com/hwchase17/langchain
synced 2024-10-31 15:20:26 +00:00
3caccf304c
Co-authored-by: Yongliang Shen <withsyl@163.com>
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from typing import List
|
|
|
|
from langchain.base_language import BaseLanguageModel
|
|
from langchain.tools.base import BaseTool
|
|
|
|
from langchain_experimental.autonomous_agents.hugginggpt.repsonse_generator import (
|
|
load_response_generator,
|
|
)
|
|
from langchain_experimental.autonomous_agents.hugginggpt.task_executor import (
|
|
TaskExecutor,
|
|
)
|
|
from langchain_experimental.autonomous_agents.hugginggpt.task_planner import (
|
|
load_chat_planner,
|
|
)
|
|
|
|
|
|
class HuggingGPT:
|
|
def __init__(self, llm: BaseLanguageModel, tools: List[BaseTool]):
|
|
self.llm = llm
|
|
self.tools = tools
|
|
self.chat_planner = load_chat_planner(llm)
|
|
self.response_generator = load_response_generator(llm)
|
|
self.task_executor: TaskExecutor
|
|
|
|
def run(self, input: str) -> str:
|
|
plan = self.chat_planner.plan(inputs={"input": input, "hf_tools": self.tools})
|
|
self.task_executor = TaskExecutor(plan)
|
|
self.task_executor.run()
|
|
response = self.response_generator.generate(
|
|
{"task_execution": self.task_executor}
|
|
)
|
|
return response
|