diff --git a/docs/docs/agents/introduction/conversation.md b/docs/docs/agents/introduction/conversation.md index 2fe969392..d1a25f9c2 100644 --- a/docs/docs/agents/introduction/conversation.md +++ b/docs/docs/agents/introduction/conversation.md @@ -26,7 +26,7 @@ context: AgentContext = AgentContext( ) # Create an agent memory, default memory is ShortTermMemory agent_memory: AgentMemory = AgentMemory() - +agent_memory.gpts_memory.init(conv_id="test123") system_prompt_template = """\ You are a {{ role }}, {% if name %}named {{ name }}, {% endif %}your goal is {{ goal }}. diff --git a/docs/docs/agents/introduction/custom_agents.md b/docs/docs/agents/introduction/custom_agents.md index acbfc9cdb..9b277e6a5 100644 --- a/docs/docs/agents/introduction/custom_agents.md +++ b/docs/docs/agents/introduction/custom_agents.md @@ -10,7 +10,7 @@ summarizer. Install the required packages by running the following command: ```bash -pip install "dbgpt[agent]>=0.5.6rc1" -U +pip install "dbgpt[agent,simple_framework]>=0.7.0" "dbgpt_ext>=0.7.0" -U pip install openai ``` @@ -286,8 +286,8 @@ class SummaryActionInput(BaseModel): ) class SummaryAction(Action[SummaryActionInput]): - def __init__(self): - super().__init__() + def __init__(self, **kwargs): + super().__init__(**kwargs) @property def resource_need(self) -> Optional[ResourceType]: @@ -371,9 +371,9 @@ class MySummarizerAgent(ConversableAgent): ### Action Extended Parameter Processing ```python -from typing import Optional, Dict, Any +from typing import Optional, Dict, Any, List from pydantic import BaseModel -from dbgpt.agent import Action, ActionOutput, AgentResource, ConversableAgent +from dbgpt.agent import Agent, Action, AgentMessage, ActionOutput, AgentResource, ConversableAgent class SummaryActionInput(BaseModel): @@ -399,7 +399,13 @@ class MySummarizerAgent(ConversableAgent): super().__init__(**kwargs) self._init_actions([SummaryAction]) - def prepare_act_param(self) -> Dict[str, Any]: + def prepare_act_param( + self, + received_message: Optional[AgentMessage], + sender: Agent, + rely_messages: Optional[List[AgentMessage]] = None, + **kwargs, + ) -> Dict[str, Any]: return {"action_extra_param_key": "this is extra param"} ``` @@ -410,6 +416,7 @@ After the custom agent is created, you can use it in the following way: ```python import asyncio +import os from dbgpt.agent import AgentContext, ConversableAgent, AgentMemory, LLMConfig, UserProxyAgent from dbgpt.model.proxy import OpenAILLMClient @@ -418,10 +425,15 @@ class MySummarizerAgent(ConversableAgent): ... async def main(): - llm_client = OpenAILLMClient(model_alias="gpt-3.5-turbo") + llm_client = OpenAILLMClient( + model_alias="gpt-3.5-turbo", # or other models, eg. "gpt-4o" + api_base=os.getenv("OPENAI_API_BASE"), + api_key=os.getenv("OPENAI_API_KEY"), + ) context: AgentContext = AgentContext(conv_id="summarize") agent_memory: AgentMemory = AgentMemory() + agent_memory.gpts_memory.init(conv_id="summarize") summarizer = ( await MySummarizerAgent() @@ -457,7 +469,7 @@ async def main(): Nuclear electric rocket """, ) - print(await agent_memory.gpts_memory.one_chat_completions("summarize")) + print(await agent_memory.gpts_memory.app_link_chat_message("summarize")) if __name__ == "__main__": asyncio.run(main()) @@ -467,9 +479,11 @@ Full code as follows: ```python import asyncio -from typing import Any, Dict, Optional, Tuple +import os +from typing import Any, Dict, Optional, Tuple, List from dbgpt.agent import ( + Agent, Action, ActionOutput, AgentContext, @@ -548,7 +562,13 @@ class MySummarizerAgent(ConversableAgent): reply_message.context = {"not_related_message": NOT_RELATED_MESSAGE} return reply_message - def prepare_act_param(self) -> Dict[str, Any]: + def prepare_act_param( + self, + received_message: Optional[AgentMessage], + sender: Agent, + rely_messages: Optional[List[AgentMessage]] = None, + **kwargs, + ) -> Dict[str, Any]: return {"action_extra_param_key": "this is extra param"} async def correctness_check( @@ -558,7 +578,7 @@ class MySummarizerAgent(ConversableAgent): action_report = message.action_report task_result = "" if action_report: - task_result = action_report.get("content", "") + task_result = action_report.content check_result, model = await self.thinking( messages=[ @@ -606,8 +626,8 @@ class SummaryActionInput(BaseModel): class SummaryAction(Action[SummaryActionInput]): - def __init__(self): - super().__init__() + def __init__(self, **kwargs): + super().__init__(**kwargs) @property def resource_need(self) -> Optional[ResourceType]: @@ -671,10 +691,15 @@ class SummaryAction(Action[SummaryActionInput]): async def main(): - llm_client = OpenAILLMClient(model_alias="gpt-3.5-turbo") + llm_client = OpenAILLMClient( + model_alias="gpt-3.5-turbo", # or other models, eg. "gpt-4o" + api_base=os.getenv("OPENAI_API_BASE"), + api_key=os.getenv("OPENAI_API_KEY"), + ) context: AgentContext = AgentContext(conv_id="summarize") agent_memory: AgentMemory = AgentMemory() + agent_memory.gpts_memory.init(conv_id="summarize") summarizer = ( await MySummarizerAgent() @@ -709,7 +734,7 @@ async def main(): Nuclear electric rocket """, ) - print(await agent_memory.gpts_memory.one_chat_completions("summarize")) + print(await agent_memory.gpts_memory.app_link_chat_message("summarize")) if __name__ == "__main__": diff --git a/docs/docs/agents/introduction/database.md b/docs/docs/agents/introduction/database.md index 19b1fbce9..a5334b3b3 100644 --- a/docs/docs/agents/introduction/database.md +++ b/docs/docs/agents/introduction/database.md @@ -9,7 +9,7 @@ the agent to the database. To use the database in the agent, you need to install the dependencies with the following command: ```bash -pip install "dbgpt[simple_framework]>=0.5.9rc0" +pip install "dbgpt[agent,simple_framework]>=0.7.0" "dbgpt_ext>=0.7.0" ``` ## Create A Database Connector @@ -33,7 +33,7 @@ created in temporary directory and will be deleted after the program exits. ::: ```python -from dbgpt.datasource.rdbms.conn_sqlite import SQLiteTempConnector +from dbgpt_ext.datasource.rdbms.conn_sqlite import SQLiteTempConnector connector = SQLiteTempConnector.create_temporary_db() connector.create_temp_tables( @@ -65,7 +65,7 @@ We connect to the SQLite database by giving the database file path, please make ::: ```python -from dbgpt.datasource.rdbms.conn_sqlite import SQLiteConnector +from dbgpt_ext.datasource.rdbms.conn_sqlite import SQLiteConnector connector = SQLiteConnector.from_file_path("path/to/your/database.db") ``` @@ -81,7 +81,7 @@ make sure the connection information is correct. ::: ```python -from dbgpt.datasource.rdbms.conn_mysql import MySQLConnector +from dbgpt_ext.datasource.rdbms.conn_mysql import MySQLConnector connector = MySQLConnector.from_uri_db( host="localhost", @@ -130,6 +130,7 @@ async def main(): conv_id="test123", language="en", temperature=0.5, max_new_tokens=2048 ) agent_memory = AgentMemory() + agent_memory.gpts_memory.init(conv_id="test123") user_proxy = await UserProxyAgent().bind(agent_memory).bind(context).build() @@ -149,7 +150,7 @@ async def main(): ) ## dbgpt-vis message infos - print(await agent_memory.gpts_memory.one_chat_completions("test123")) + print(await agent_memory.gpts_memory.app_link_chat_message("test123")) if __name__ == "__main__": diff --git a/docs/docs/agents/introduction/introduction.md b/docs/docs/agents/introduction/introduction.md index b582b6126..51744a341 100644 --- a/docs/docs/agents/introduction/introduction.md +++ b/docs/docs/agents/introduction/introduction.md @@ -20,7 +20,7 @@ a simple way, only a little change to the code when you need to deploy your agen Firstly, you need to install the `dbgpt` package with the following command: ```bash -pip install "dbgpt[agent]>=0.5.9rc0" +pip install "dbgpt[agent,simple_framework]>=0.7.0" "dbgpt_ext>=0.7.0" ``` Then, you can install the `openai` package with the following command: @@ -81,6 +81,9 @@ async def main(): .bind(agent_memory) .build() ) + + # Initialize GptsMemory + agent_memory.gpts_memory.init(conv_id="test123") # Create a user proxy agent user_proxy = await UserProxyAgent().bind(context).bind(agent_memory).build() @@ -92,7 +95,7 @@ async def main(): message="Calculate the result of 321 * 123", ) # Obtain conversation history messages between agents - print(await agent_memory.gpts_memory.one_chat_completions("test123")) + print(await agent_memory.gpts_memory.app_link_chat_message("test123")) if __name__ == "__main__": diff --git a/docs/docs/agents/introduction/planning.md b/docs/docs/agents/introduction/planning.md index a0d786a57..86e5ad063 100644 --- a/docs/docs/agents/introduction/planning.md +++ b/docs/docs/agents/introduction/planning.md @@ -30,7 +30,7 @@ will be created in the temporary directory and will be deleted after the program Fist, create a temporary SQLite database and create some tables and insert some data: ```python -from dbgpt.datasource.rdbms.conn_sqlite import SQLiteTempConnector +from dbgpt_ext.datasource.rdbms.conn_sqlite import SQLiteTempConnector connector = SQLiteTempConnector.create_temporary_db() connector.create_temp_tables( @@ -140,6 +140,7 @@ async def main(): conv_id="test123", language="en", temperature=0.5, max_new_tokens=2048 ) agent_memory = AgentMemory() + agent_memory.gpts_memory.init(conv_id="test123") user_proxy = await UserProxyAgent().bind(agent_memory).bind(context).build() @@ -167,7 +168,7 @@ async def main(): ) # dbgpt-vis message infos - print(await agent_memory.gpts_memory.one_chat_completions("test123")) + print(await agent_memory.gpts_memory.app_link_chat_message("test123")) if __name__ == "__main__": diff --git a/docs/docs/agents/introduction/tools.md b/docs/docs/agents/introduction/tools.md index 5b273e9c0..ce5591e6c 100644 --- a/docs/docs/agents/introduction/tools.md +++ b/docs/docs/agents/introduction/tools.md @@ -82,6 +82,7 @@ async def main(): conv_id="test123", language="en", temperature=0.5, max_new_tokens=2048 ) agent_memory = AgentMemory() + agent_memory.gpts_memory.init(conv_id="test123") user_proxy = await UserProxyAgent().bind(agent_memory).bind(context).build() @@ -107,7 +108,7 @@ async def main(): ) # dbgpt-vis message infos - print(await agent_memory.gpts_memory.one_chat_completions("test123")) + print(await agent_memory.gpts_memory.app_link_chat_message("test123")) if __name__ == "__main__": asyncio.run(main())