Windows环境下使用LangChain和MySQL构建企业级AI应用的完整流程

云信安装大师
90
AI 质量分
11 5 月, 2025
5 分钟阅读
0 阅读

Windows环境下使用LangChain和MySQL构建企业级AI应用的完整流程

引言

在当今AI技术飞速发展的时代,将AI能力与企业数据结合已成为提升业务效率的重要手段。本文将带你一步步在Windows环境下,使用LangChain框架和MySQL数据库构建一个企业级AI应用。无论你是AI初学者还是有经验的开发者,都能从本教程中获得实用知识。

准备工作

在开始之前,请确保你的Windows系统已安装以下环境:

  1. Python 3.8或更高版本
  2. MySQL Server 8.0
  3. Git(可选)

环境检查

打开命令提示符(CMD)或PowerShell,执行以下命令检查环境:

代码片段
python --version
mysql --version

第一步:安装必要依赖

创建一个新的Python虚拟环境并安装所需包:

代码片段
# 创建虚拟环境
python -m venv langchain_env
# 激活虚拟环境
langchain_env\Scripts\activate
# 安装依赖包
pip install langchain openai mysql-connector-python python-dotenv

注意事项
– 建议使用虚拟环境以避免包冲突
– MySQL连接器需要与你的MySQL版本兼容

第二步:配置MySQL数据库

1. 创建数据库和表

登录MySQL并执行以下SQL:

代码片段
CREATE DATABASE enterprise_ai;
USE enterprise_ai;

CREATE TABLE products (
    id INT AUTO_INCREMENT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    description TEXT,
    price DECIMAL(10,2),
    stock INT,
    category VARCHAR(50)
);

CREATE TABLE customer_feedback (
    id INT AUTO_INCREMENT PRIMARY KEY,
    product_id INT,
    feedback TEXT,
    sentiment VARCHAR(20),
    FOREIGN KEY (product_id) REFERENCES products(id)
);

2. 插入示例数据

代码片段
INSERT INTO products (name, description, price, stock, category) VALUES 
('智能音箱', '带语音助手的智能家居设备', 299.99, 100, '电子产品'),
('无线耳机', '降噪蓝牙耳机', 199.99, 150, '电子产品'),
('咖啡机', '全自动研磨咖啡机', 399.99, 50, '家用电器');

INSERT INTO customer_feedback (product_id, feedback, sentiment) VALUES 
(1, '音质非常好,语音识别准确', 'positive'),
(2, '电池续航不如宣传的那么长', 'negative'),
(3, '操作简单,咖啡味道很棒', 'positive');

第三步:配置LangChain应用

1. 创建项目结构

代码片段
enterprise_ai_app/
│── .env                # 环境变量文件
│── config.py           # 配置文件
│── database.py         # 数据库连接模块
│── ai_services.py      # AI服务模块
│── main.py             # 主程序入口

2. 设置环境变量(.env)

代码片段
OPENAI_API_KEY=你的OpenAI API密钥
DB_HOST=localhost
DB_USER=root
DB_PASSWORD=你的密码
DB_NAME=enterprise_ai

3. database.py – MySQL连接工具

代码片段
import mysql.connector
from mysql.connector import Error
from dotenv import load_dotenv
import os

load_dotenv()

def create_db_connection():
    try:
        connection = mysql.connector.connect(
            host=os.getenv('DB_HOST'),
            user=os.getenv('DB_USER'),
            passwd=os.getenv('DB_PASSWORD'),
            database=os.getenv('DB_NAME')
        )
        print("MySQL连接成功")
        return connection
    except Error as e:
        print(f"连接MySQL错误: '{e}'")
        return None

def execute_query(connection, query):
    cursor = connection.cursor()
    try:
        cursor.execute(query)
        connection.commit()
        print("查询执行成功")
    except Error as e:
        print(f"执行查询错误: '{e}'")

def read_query(connection, query):
    cursor = connection.cursor(dictionary=True)
    result = None
    try:
        cursor.execute(query)
        result = cursor.fetchall()
        return result
    except Error as e:
        print(f"读取查询错误: '{e}'")

4. ai_services.py – LangChain集成

代码片段
from langchain.chains import LLMChain
from langchain.prompts import PromptTemplate
from langchain.llms import OpenAI
from dotenv import load_dotenv
import os

load_dotenv()

class AIService:
    def __init__(self):
        self.llm = OpenAI(temperature=0.7)

    def generate_product_description(self, product_info):
        prompt = PromptTemplate(
            input_variables=["product_name", "features", "category"],
            template="""
            你是一个专业的营销文案撰写人。请为以下产品创作吸引人的描述:

            产品名称: {product_name}
            主要特点: {features}
            产品类别: {category}

            请写出150字左右的产品描述,突出产品的独特卖点。
            """
        )

        chain = LLMChain(llm=self.llm, prompt=prompt)

        return chain.run({
            "product_name": product_info["name"],
            "features": product_info["description"],
            "category": product_info["category"]
        })

    def analyze_feedback_sentiment(self, feedback_text):
        prompt = PromptTemplate(
            input_variables=["feedback"],
            template="""
            分析以下客户反馈的情感倾向。只返回'positive'、'negative'或'neutral':

            反馈内容: {feedback}

            情感分析结果:
            """
        )

        chain = LLMChain(llm=self.llm, prompt=prompt)

        return chain.run({"feedback": feedback_text})

第四步:构建主应用逻辑(main.py)

代码片段
from database import create_db_connection, read_query, execute_query 
from ai_services import AIService

def main():
    # 初始化服务和数据库连接
    ai_service = AIService()
    connection = create_db_connection()

    if not connection:
        print("无法连接到数据库")
        return

    while True:
        print("\n企业级AI应用菜单:")
        print("1. AI生成产品描述")
        print("2. AI分析客户反馈情感")
        print("3. AI推荐库存优化策略")
        print("4. 退出")

        choice = input("请输入选项: ")

        if choice == "1":
            # AI生成产品描述功能示例

            # Step1:从数据库获取产品信息(这里简化处理)
            query = "SELECT * FROM products LIMIT —1;"
            products = read_query(connection, query)

            if not products:
                print("没有找到产品信息")
                continue

            for idx, product in enumerate(products):
                print(f"{idx+1}. {product['name']}")

            selected_idx = int(input("选择要生成描述的产品编号: ")) - —1

            selected_product = products[selected_idx]

            # Step2:使用AI生成描述(演示用)
            new_description = ai_service.generate_product_description({
                "name": selected_product["name"],
                "description": selected_product["description"],
                "category": selected_product["category"]
            })

            print("\n生成的描述:")
            print(new_description)

            # Step3:更新数据库(可选)
            update_desc = input("\n是否更新到数据库?(y/n): ")

            if update_desc.lower() == 'y':
                update_query = f"""
                UPDATE products 
                SET description = '{new_description.replace("'", "''")}'
                WHERE id = {selected_product['id']};
                """

                execute_query(connection, update_query)


if __name__ == "__main__":
    main()

第五步:测试与验证

运行主程序并测试各个功能:

代码片段
python main.py 

预期输出示例

代码片段
企业级AI应用菜单:
1.AI生成产品描述 
2.AI分析客户反馈情感 
3.AI推荐库存优化策略 
4.退出 

请输入选项:1 

1\.智能音箱 
2\.无线耳机 
3\.咖啡机 

选择要生成描述的产品编号:3 

生成的描述:
这款全自动研磨咖啡机是咖啡爱好者的完美选择...(省略) 

是否更新到数据库?(y/n):y 
MySQL连接成功 
查询执行成功 

第六步:扩展功能

1.AI驱动的客户反馈分析

main.py中添加新选项处理逻辑:

代码片段
elif choice == "2":
    #获取所有客户反馈 
    query="SELECT*FROM customer_feedback;" 
    feedbacks=read_query(connection.query) 

    for fb in feedbacks: 
        sentiment=ai_service analyze_feedback_sentiment(fb['feedback']) 
        print(f"\n反馈ID:{fb['id']}") 
        print(f"原始内容:{fb['feedback']}") 
        print(f"情感分析结果:{sentiment}") 

        #更新情感分析结果到数据库 
        update_query=f"""UPDATE customer_feedback SET sentiment='{sentiment}' WHERE id={fb['id']};"""              execute_query(connection.update_query)       

elif choice=="3":       
    #库存优化建议功能       
    query="""SELECT p.name,p.stock.COUNT(f.id)as feedback_count FROM products p LEFT JOIN customer_feedback f ON p.id=f.product_id GROUP BY p.id;"""           

products_data=read_query(connection.query)            

for product in products_data:              
    suggestion="增加生产"if product['stock']<50 else"维持现状"if product['feedback_count']>10 and product['stock']>100 else"考虑促销"              

print(f"\n产品:{product['name']}")              
print(f"当前库存:{product['stock']}|反馈数量:{product['feedback_count']}")              
print(f"AI建议:{suggestion}")

2.添加日志记录功能 

创建logger.py:

代码片段
import logging from datetime 
import datetime 

def setup_logger():       
    log_filename=f"logs/enterprise_ai_{datetime.now().strftime('%Y%m%d')}.log"       

logging.basicConfig(filename=log_filename.level=logging.DEBUG.format='%(asctime)s-%(levelname)s-%(message)s')       

return logging.getLogger(__name__) 

logger=setup_logger() logger.info("Application started")

然后在各模块中导入并使用logger记录关键操作。

最佳实践与注意事项

1.性能优化
-对频繁查询建立数据库索引 
-使用连接池管理数据库连接 
-缓存常用AI生成结果 

2.安全建议
-永远不要将凭据硬编码在代码中 
-使用参数化查询防止SQL注入   cursor.execute("SELECT*FROM users WHERE username=%s"(username)) 

3.错误处理增强
python try:      
    #业务逻辑 except mysql connector.Error as err:      
    logger.error(f"Database error occurred:{err}")      
except Exception as e:      
    logger.critical(f"Unexpected error:{e}",exc_info=True)

4.扩展性设计
-考虑将AI服务抽象为微服务 
-使用消息队列处理异步任务如批量生成描述 

5.监控与维护
-添加Prometheus指标收集       -定期清理日志文件       -设置自动化测试流水线          

总结

通过本教程我们完成了:
✅在Windows搭建Python+MySQL开发环境              ✅集成LangChain与OpenAI的AI能力              ✅实现企业数据与AI的有机结合              ✅构建了三个实用业务场景功能              ✅学习了生产级应用的最佳实践   

后续可探索方向:   -接入企业微信/钉钉作为交互界面   -增加PDF/Excel等多数据源支持   -引入更复杂的RAG架构处理大量文档   

希望这篇指南能帮助你顺利开启企业级AI应用的开发之旅!遇到问题欢迎在评论区交流讨论。

原创 高质量