概念证明:使用MCP和LangChain生成静态页面
这个项目是他使用的概念的证明 MCP(模型上下文协议) y LangChain 根据提供的有关业务的信息生成个性化静态网页。该应用程序结合了自然语言处理工具和动态内容生成,以创建自动化体验。
描述
该应用程序以有关企业的详细信息为输入,例如其名称、描述、服务、产品、位置、风格和首选颜色。根据这些信息,它自动生成:
- HTML文件(
index.html)它包括头部、身体和脚。 - CSS文件(
styles.css)页面的自定义样式。
项目使用 LangChain 用于与语言模型和 主控程序 用于管理工具和动态内容生成。
项目结构
main.py:协调网站生成的主文件。server.py:MCP服务器,定义生成和保存HTML和CSS内容的工具。pyproject.toml:项目配置文件。README.md:这个文件。
要求
- 让LM Studio处于服务器模式
- 拥有OpenAI/GPT-OSS-20B模型
- 指定的依赖项
pyproject.toml
安装
- 克隆此存储库:
git clone
cd - 安装依赖项:
uv venv && source .venv/bin/activate && uv lock使用
- 执行主脚本:
python main.py- 生成的文件(
index.htmlystyles.css)它们将保存在文件夹中dist.
MCP工具
MCP服务器(server.py)定义以下工具:
generate_index:结合标题、正文和脚注生成完整的HTML文件。generate_header:生成带有标题和导航链接的HTML标题。generate_body:生成包含服务、产品和业务描述部分的HTML正文。generate_footer:生成带有联系信息的HTML页脚。save_file:将内容保存在文件夹内的文件中dist.
输入示例
business_info = BusinessInfo(
name="Carnicería Cuencana",
description="Carnicería tradicional en Cuenca especializada en carnes frescas y embutidos artesanales.",
email="info@carniceriacuencana.es",
services=[
"Entrega a domicilio",
"Cortes personalizados",
"Asesoramiento en recetas",
],
products=[
"Carne de ternera",
"Carne de cerdo",
"Embutidos caseros",
"Pollo de corral",
],
city="Cuenca",
job="carnicería",
job_description="ofrecer carnes frescas, de calidad y embutidos artesanales a sus clientes",
style="tradicional, limpio y acogedor",
colors="rojo, blanco y tonos madera",
)输出示例
index.html:生成内容的HTML文件。styles.css:带有自定义样式的CSS文件。
