Skip to content

Commit d686359

Browse files
committed
refact: remove create_llm func
1 parent cbdd591 commit d686359

File tree

11 files changed

+59
-79
lines changed

11 files changed

+59
-79
lines changed
Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
from abc import ABC, abstractmethod
22
from langchain_core.runnables import Runnable
3-
from langchain_core.language_models import BaseChatModel
43
from langchain_openai_api_bridge.core.create_agent_dto import CreateAgentDto
54

65

76
class BaseAgentFactory(ABC):
87

98
@abstractmethod
10-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
11-
pass
12-
13-
@abstractmethod
14-
def create_llm(self, dto: CreateAgentDto) -> BaseChatModel:
9+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
1510
pass

langchain_openai_api_bridge/fastapi/chat_completion_router.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,8 +30,8 @@ async def assistant_retreive_thread_messages(
3030
api_key=api_key,
3131
temperature=request.temperature,
3232
)
33-
llm = agent_factory.create_llm(dto=create_agent_dto)
34-
agent = agent_factory.create_agent(llm=llm, dto=create_agent_dto)
33+
34+
agent = agent_factory.create_agent(dto=create_agent_dto)
3535

3636
adapter = ChatCompletionCompatibleAPI.from_agent(agent, create_agent_dto.model)
3737

langchain_openai_api_bridge/fastapi/internal_agent_factory.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,5 +18,4 @@ def create_agent(self, thread_run_dto: ThreadRunsDto, api_key: str) -> Runnable:
1818
temperature=thread_run_dto.temperature,
1919
assistant_id=thread_run_dto.assistant_id,
2020
)
21-
llm = self.agent_factory.create_llm(dto=create_agent_dto)
22-
return self.agent_factory.create_agent(llm=llm, dto=create_agent_dto)
21+
return self.agent_factory.create_agent(dto=create_agent_dto)

tests/test_functional/fastapi_assistant_agent_anthropic/my_anthropic_agent_factory.py

Lines changed: 7 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
from langchain_openai_api_bridge.core.base_agent_factory import BaseAgentFactory
66
from langchain_core.runnables import Runnable
7-
from langchain_core.language_models import BaseChatModel
87
from langchain_core.tools import tool
98
from langgraph.prebuilt import create_react_agent
109

@@ -19,16 +18,15 @@ def magic_number_tool(input: int) -> int:
1918

2019
class MyAnthropicAgentFactory(BaseAgentFactory):
2120

22-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
21+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
22+
llm = AnthropicOpenAICompatibleChatModel(
23+
model=dto.model,
24+
max_tokens=1024,
25+
streaming=True,
26+
)
27+
2328
return create_react_agent(
2429
llm,
2530
[magic_number_tool],
2631
messages_modifier="""You are a helpful assistant.""",
2732
)
28-
29-
def create_llm(self, dto: CreateAgentDto) -> Runnable:
30-
return AnthropicOpenAICompatibleChatModel(
31-
model=dto.model,
32-
max_tokens=1024,
33-
streaming=True,
34-
)
Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from langchain_openai_api_bridge.core.base_agent_factory import BaseAgentFactory
22
from langchain_core.runnables import Runnable
3-
from langchain_core.language_models import BaseChatModel
43
from langchain_core.tools import tool
54
from langgraph.prebuilt import create_react_agent
65
from langchain_openai import ChatOpenAI
@@ -16,17 +15,16 @@ def magic_number_tool(input: int) -> int:
1615

1716
class MyAgentFactory(BaseAgentFactory):
1817

19-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
20-
return create_react_agent(
21-
llm,
22-
[magic_number_tool],
23-
messages_modifier="""You are a helpful assistant.""",
24-
)
25-
26-
def create_llm(self, dto: CreateAgentDto) -> Runnable:
27-
return ChatOpenAI(
18+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
19+
llm = ChatOpenAI(
2820
model=dto.model,
2921
api_key=dto.api_key,
3022
streaming=True,
3123
temperature=dto.temperature,
3224
)
25+
26+
return create_react_agent(
27+
llm,
28+
[magic_number_tool],
29+
messages_modifier="""You are a helpful assistant.""",
30+
)
Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,21 @@
11
from langchain_groq import ChatGroq
22
from langchain_openai_api_bridge.core.base_agent_factory import BaseAgentFactory
33
from langchain_core.runnables import Runnable
4-
from langchain_core.language_models import BaseChatModel
54
from langgraph.prebuilt import create_react_agent
65

76
from langchain_openai_api_bridge.core.create_agent_dto import CreateAgentDto
87

98

109
class MyGroqAgentFactory(BaseAgentFactory):
1110

12-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
11+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
12+
llm = ChatGroq(
13+
model=dto.model,
14+
streaming=False, # Must be set to false. Groq does not support tool calling with stream at the moment (23/07/2024)
15+
)
16+
1317
return create_react_agent(
1418
llm,
1519
[],
1620
messages_modifier="""You are a helpful assistant.""",
1721
)
18-
19-
def create_llm(self, dto: CreateAgentDto) -> Runnable:
20-
chat_model = ChatGroq(
21-
model=dto.model,
22-
streaming=False, # Must be set to false. Groq does not support tool calling with stream at the moment (23/07/2024)
23-
)
24-
25-
return chat_model

tests/test_functional/fastapi_assistant_agent_llamacpp/my_llamacpp_agent_factory.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,9 @@ def magic_number_tool(input: int) -> int:
2222

2323
class MyLlamacppAgentFactory(BaseAgentFactory):
2424

25-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
25+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
26+
llm = self.create_llm(dto=dto)
27+
2628
return create_react_agent(
2729
llm,
2830
[magic_number_tool],
@@ -45,6 +47,6 @@ def create_llm(self, dto: CreateAgentDto) -> BaseChatModel:
4547

4648
return LLamacppOpenAICompatibleChatModel(
4749
llama=llama,
48-
temperature=0,
50+
temperature=dto.temperature or 0,
4951
streaming=True,
5052
)
Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from langchain_openai_api_bridge.core.base_agent_factory import BaseAgentFactory
22
from langchain_core.runnables import Runnable
3-
from langchain_core.language_models import BaseChatModel
43
from langchain_core.tools import tool
54
from langgraph.prebuilt import create_react_agent
65
from langchain_openai import ChatOpenAI
@@ -16,17 +15,16 @@ def magic_number_tool(input: int) -> int:
1615

1716
class MyAgentFactory(BaseAgentFactory):
1817

19-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
20-
return create_react_agent(
21-
llm,
22-
[magic_number_tool],
23-
messages_modifier="""You are a helpful assistant.""",
24-
)
25-
26-
def create_llm(self, dto: CreateAgentDto) -> Runnable:
27-
return ChatOpenAI(
18+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
19+
llm = ChatOpenAI(
2820
model=dto.model,
2921
api_key=dto.api_key,
3022
streaming=True,
3123
temperature=dto.temperature,
3224
)
25+
26+
return create_react_agent(
27+
llm,
28+
[magic_number_tool],
29+
messages_modifier="""You are a helpful assistant.""",
30+
)
Lines changed: 6 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from langchain_openai_api_bridge.core.base_agent_factory import BaseAgentFactory
22
from langchain_core.runnables import Runnable
3-
from langchain_core.language_models import BaseChatModel
43
from langgraph.prebuilt import create_react_agent
54
from langchain_anthropic import ChatAnthropic
65

@@ -9,15 +8,14 @@
98

109
class MyAnthropicAgentFactory(BaseAgentFactory):
1110

12-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
11+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
12+
llm = ChatAnthropic(
13+
model=dto.model,
14+
streaming=True,
15+
)
16+
1317
return create_react_agent(
1418
llm,
1519
[],
1620
messages_modifier="""You are a helpful assistant.""",
1721
)
18-
19-
def create_llm(self, dto: CreateAgentDto) -> Runnable:
20-
return ChatAnthropic(
21-
model=dto.model,
22-
streaming=True,
23-
)
Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
from langchain_openai_api_bridge.core.base_agent_factory import BaseAgentFactory
22
from langchain_core.runnables import Runnable
3-
from langchain_core.language_models import BaseChatModel
43
from langchain_core.tools import tool
54
from langgraph.prebuilt import create_react_agent
65
from langchain_openai import ChatOpenAI
@@ -16,17 +15,16 @@ def magic_number_tool(input: int) -> int:
1615

1716
class MyOpenAIAgentFactory(BaseAgentFactory):
1817

19-
def create_agent(self, llm: BaseChatModel, dto: CreateAgentDto) -> Runnable:
20-
return create_react_agent(
21-
llm,
22-
[magic_number_tool],
23-
messages_modifier="""You are a helpful assistant.""",
24-
)
25-
26-
def create_llm(self, dto: CreateAgentDto) -> Runnable:
27-
return ChatOpenAI(
18+
def create_agent(self, dto: CreateAgentDto) -> Runnable:
19+
llm = ChatOpenAI(
2820
model=dto.model,
2921
api_key=dto.api_key,
3022
streaming=True,
3123
temperature=dto.temperature,
3224
)
25+
26+
return create_react_agent(
27+
llm,
28+
[magic_number_tool],
29+
messages_modifier="""You are a helpful assistant.""",
30+
)

0 commit comments

Comments
 (0)