MemGPT作为服务(MAAS):围绕MemGPT构建聊天界面

在浏览器上将MemGPT作为交互式聊天机器人运行。

Build things that don’t scale ~ Paul Graham

到目前为止,我们主要通过终端来使用MemGPT,就像我之前的文章中演示的那样。然而,正如Mario Wolframm所指出的那样,为了增强其实用性,我们必须通过浏览器应用程序来使其可访问,摆脱内部思维过程的杂乱。今天的探索包括利用MemGPT服务器作为后端,托管一个聊天机器人前端,并使用户仅通过聊天界面与机器人进行互动,机器人的回复是唯一的输出。

今天我们的最终目标:

On a web browser — streamlit connected to MemGPT server

注意:MemGPT 服务器 API 仍在开发中。正如其文档中提到的那样,事物是不稳定的。查看他们的 Discord 或 GitHub 来解决问题是一个好的方法。

设置:

再次,我们将按照OpenAI的路线(以保持事情简单)进行操作。因此,像往常一样,您将需要OpenAI API密钥。

操作系统: Mac

Python: 3.10 Python:3.10

我也创建了一个新的虚拟环境,以确保我没有携带任何包袱。以下操作需要在终端上运行。

conda create --name memgpt310 python=3.10
conda activate memgpt310
pip install -U pymemgpt

这一次我们不是克隆GitHub存储库,而是安装稳定版本的MemGPT。

您可能需要配置memgpt并添加OpenAI API密钥。为了安全起见,请再次生成一个新的API密钥。

export OPENAI_API_KEY=<Your key>
rm -rf ~/.memgpt
memgpt configure

执行以下命令以确保 memgpt 在终端上正常工作。

memgpt run 
Shoot a couple of questions to make sure its working.

同样要注意,代理人的名称是agent_1。这个信息是至关重要的,将来会很有用。

MemGPT 服务器

关闭聊天,然后在同一终端中运行以下命令来启动 MemGPT 服务器。

memgpt server
MemGPT is up and running

API检查

让我们现在看看我们是否可以向MemGPT服务器发送一些请求并获得响应。详细的API文档在这里,但是你可能会发现它有时过时。

打开另一个终端并运行以下curl命令。

curl --request GET   \
--url 'http://localhost:8283/agents/config?user_id=sdsd&agent_id=agent_1' \
--header 'accept: application/json'

我们正在询问 agent_1 的详细信息。回复应如下所示:

{
"name":"agent_1",
"persona":"sam_pov",
"human":"basic",
"preset":"memgpt_chat",
"context_window":8192,
"model":"gpt-4",
"model_endpoint_type":"openai",
"model_endpoint":"https://api.openai.com/v1",
"model_wrapper":null,
"embedding_endpoint_type":"openai",
"embedding_endpoint":"https://api.openai.com/v1",
"embedding_model":null,
"embedding_dim":1536,
"embedding_chunk_size":300,
"data_sources":[],"create_time":"2024-01-10 07:40:46 PM",
"memgpt_version":"0.2.11",
"agent_config_path":"/Users/ashhadulislam/.memgpt/agents/agent_1/config.json"
}

以上是命令的输出。尽管输出显示在同一行上。

如果你有POSTman,你也可以在那里试试看。

Output in postman

最终测试:发送一条信息并获得回复。

让我们发送一条消息给服务器(agent_1),看看是否能够得到响应。

发送消息给代理的cURL请求如下。在另一个终端上运行它。

curl --request POST \
--url http://localhost:8283/agents/message \
--header 'accept: application/json' \
--header 'content-type: application/json' \
--data '
{
"user_id": "sdsd",
"agent_id": "agent_1",
"message": "How much does 2 and 2 make?",
"role": "user",
"stream": false
}
'

输出得到的是一个格式很好的JSON文件。

{
"messages":
[
{"internal_monologue":"A repetition of the same question? I wonder if Chad is testing my consistency or perhaps the speed of responses. Either way, let's stick with the same simple, direct answer. Keep it reliable, unwavering, just like Sam would - steadfast in the face of complexity, even when it's disguised as simplicity."},
{"function_call":"send_message({'message': 'The sum of 2 and 2 still makes 4. Did you perhaps mean to ask something else?'})"},
{"assistant_message":"The sum of 2 and 2 still makes 4. Did you perhaps mean to ask something else?"},{"function_return":"None","status":"success"}
]
}

所以,作为响应,我们得到了JSON数据。我们可以从消息列表中选择“assistant_message”作为机器人的响应。

现在有了这种明确的理解,让我们使用一个简单的聊天机器人用户界面从Web浏览器访问MemGPT服务器。

Streamlit代码用于聊天界面

在MemGPT服务器安全地运行在端口8283上的情况下,请随意进入您的系统。确保您已经激活了相同的虚拟环境。

pip install streamlit

打开一个名为chatStream.py的文件,并将以下代码放入其中。

现在只需在终端中运行代码。

streamlit run chatStream.py

该应用程序应该在http://localhost:8502/上可用。

Type in a name and choose the agent

您可能会注意到这个代理就是您在自定义MemGPT时创建的代理。

Enjoy your conversation

结论

呼!这真是太激烈了,但是我很高兴我们能够将机器人从终端移植到浏览器世界中。无限的可能性。再次感谢Mario Wolframm寻找到这条途径。

现在就这样吧。干杯!

以下是我其他以LlM为基础的文章的链接:

开源LLM

**MemGPT 上的文本文件**(请密切关注)

检索增强生成中的范式转变:MemGPT【正如文章提到的,这并不是真正的开源】—— 这是旧版的MemGPT,仅限于文本。

MemGPT:从多个PDF中吸收信息【本文的第二部分,也是之前文章的前身】

多模态图像聊天

超快速视觉对话:释放 LLaVA 1.5

PDF 相关

使用LlamaPacks进行高级检索:以更少的代码提升RAG!

超级快速:使用Ollama进行检索增强生成

超级快速:使用CPU在公司信息中使用Llama 2.0的检索增强生成(RAG)

评估基于CPU的局部局部模型在在线使用方面的适用性【比较三种不同的局部局部模型在RAG活动中的响应时间】

数据库相关

超快:使用CPU机器上的LLAMA2从模式生成SQL查询

关闭源LLM(OpenAI):

PDF 相关

聊天机器人文档检索:询问非平凡问题

数据库相关

超级快速:将ChatGPT连接到PostgreSQL数据库

一般信息:

OpenAI开发者日:6项公告以及为何我们RAG用户需要担心

超级快速:GPT4与开源的RAG对比

Peace and Resistance: For Palestine

PlainEnglish.io 🚀

非常感谢您成为“以简明英语”社区的一员!在您离开之前:

  • 一定要鼓掌并追踪作者。
  • 学习如何写简明易懂的英文。
  • 关注我们:X | 领英 | YouTube | Discord | 通讯订阅
  • 访问我们的其他平台:Stackademic | CoFeed | Venture

2024-01-12 04:38:10 AI中文站翻译自原文