一、基础概念

1、AI (Artificial Inteligence)人工智能

AI, 涉及多个学科(计算机科学、数据分析、统计学、机器工程、语言学神经科学、哲学、心理学等)的一个交叉领域
旨在研究、设计、构建具备智能、学习、推理和行动能力的计算机和机器

2、GAI(Generative AI) 生成式人工智能

让机器能够生成复杂、有结构的物件。例如写论文、脚本
2022年11月 ChatGPT3.5
2025年1月 deepseek R1

3、机器学习

研究让计算机在没有明确编程的情况下,通过对数据进行分析、学习、自动改进其行为或做出预测的学科。

3.1 监督学习

理解为标注学习,对数据进行明确的标注,根据标注信息识别数据

3.2 非监督学习

理解为自学
给它一些完整的数据,通过学习后,能够让它根据现在已提供的信息去补全后面的数据

3.3 强化学习

模型训练好后向它提问,然后我们对它的回答进行一个正反馈,例如点赞或打勾的方式,这样模型下次再遇到相同的问题时,就会更知道哪种回答更好

4、深度学习

深度学习是机器学习的一个分支

4.1 神经网络

对数据进行多维度的分析,提取数据的特征
比如1,2,3,4,5,6,可以从等差数列、最大/小值、音符的多个维度去分析理解

4.2 Transformer

80%的大模型都是基于Transformer架构进行研发

二、应用领域

1、自然语言处理NLP

  • 情感分析
  • 文本归类
  • 信息抽取
  • 数学问题
  • 角色扮演
  • 编程问题
  • 创作问题

2、语音处理SLP

3、图像视频处理

4、多模态应用

四、Prompt

1、高质量的prompt

指令具体、信息丰富、尽量少歧义

2、prompt典型构成

  • 角色:给AI定义一个最匹配任务的角色
  • 指示:对任务进行描述
  • 上下文:给出与任务相关的背景信息
  • 例子
  • 输入:任务的输入信息
  • 输出:输出的格式描述
    注意:不要固守模板!!!!!!!!!!

3、Prompt基础应用测试

下面是一个基于one-api调用LLM接口,使用langchain框架,模拟实现推荐流量包的智能客服的prompt基础应用测试案例。
案例是借用github NanGePlus编写好的项目案例。GitHub地址: https://github.com/NanGePlus/PromptLangChainTest
接下来梳理一下项目运行的环境准备

3.1 安装python开发环境

  • 根据自己的系统平台安装python解释器、我这里使用的是python 3.12
  • pycharm IDE工具、社区版、专业版均可;我这里使用的是pycharm 2024 professional

3.2 安装启动one-api

https://github.com/songquanpeng/one-api
根据自己的系统平台下载one-api release版本(启动简单)、我这里是在本地的Linux虚拟机上安装

[root@localhost ~]# mv one-api /usr/local/bin/
[root@localhost ~]# chmod a+x /usr/local/bin/one-api 
[root@localhost ~]# nohup one-api --port 3000 --log-dir ./logs > output.log 2>&1 &
[1] 1886

[root@localhost ~]# ps -elf | grep one-api
4 S root       1886   1431 23  80   0 - 468869 futex_ 15:45 pts/0   00:00:01 one-api --port 3000 --log-dir ./logs
0 S root       1896   1431  0  80   0 - 28203 pipe_w 15:45 pts/0    00:00:00 grep --color=auto one-api

启动完成后,可通过虚拟机的3000端口访问one-api。使用默认用户名: root,密码: 123456 登录即可
在这里插入图片描述

3.3 在one-api创建渠道

创建渠道,说的直白一点就是指定将来的调用的底层大模型。one-api支持的大模型类型很多,在创建渠道界面通过下拉列表可直观的看到。我这里创建的渠道用的是deepseek
在这里插入图片描述下面是创建渠道的界面。下拉列表根据自己的实际情况选择大模型,下面输入对应的密钥
在这里插入图片描述

3.4 在one-api创建令牌

这里创建的令牌,将来用于python代码中,python代码通过该令牌调用one-api。本地部署的one-api,令牌的额度可自定义
在这里插入图片描述

4、项目运行测试

整个项目初始化、代码中的变量修改、效果测试可参考项目中的README.MD文件。再次感谢代码提供者

4.1 下载PromptLangChainTest项目

下载项目的zip压缩包,解压到本地
https://gitee.com/NanGePlus/PromptLangChainTest
在这里插入图片描述

4.2 pycharm创建python项目

在pycharm中创建python项目,将解压的PromptLangChainTest项目的解压文件拷贝到自己项目本地
在这里插入图片描述

4.3 安装项目依赖

(.venv) PS E:\PromptLangChainTest\ pip install -r requirement.txt

4.4 按项目中的README.MD文件中的描述修改项目代码中的变量定义

# 4、项目测试          
## 4.1 基础案例:推荐流量包的智能客服测试
### (1)启动main脚本
实现使用langchain框架,模拟实现推荐流量包的智能客服                  
进入basic文件夹下,在使用python main.py命令启动脚本前,需根据自己的实际情况调整代码中的如下参数:                        
**调整1:设置langsmith环境变量:**  ,可不用设置         
os.environ["LANGCHAIN_TRACING_V2"] = "true"                      
os.environ["LANGCHAIN_API_KEY"] = "这里填写申请的API_KEY"                       
**调整2:prompt模版设置相关:**           
PROMPT_TEMPLATE_TXT_SYS = "prompt_template_system.txt"  # 模版文件路径                      
PROMPT_TEMPLATE_TXT_USER = "prompt_template_user.txt"  # 模版文件路径           
**调整3:选择使用哪种模型标志设置:**             
API_TYPE = "oneapi"  # openai:调用gpt模型;oneapi:调用oneapi方案支持的模型(这里调用通义千问)                              
**调整4:openai模型相关配置 根据自己的实际情况进行调整:**                  
OPENAI_API_BASE = "这里填写API调用的URL地址"                      
OPENAI_CHAT_API_KEY = "这里填写LLM模型的API_KEY"                         
OPENAI_CHAT_MODEL = "gpt-4o-mini"                               
**调整5:oneapi相关配置(通义千问为例) 根据自己的实际情况进行调整:**              
ONEAPI_API_BASE = "这里填写oneapi调用的URL地址"                    
ONEAPI_CHAT_API_KEY = "这里填写LLM模型的API_KEY"                     
ONEAPI_CHAT_MODEL = "qwen-plus"                                     
**调整6:API服务设置相关  根据自己的实际情况进行调整:**                         
PORT = 8012  # 服务访问的端口                  
### (2)运行apiTest脚本进行检索测试             
进入basic文件夹下,在使用python apiTest.py命令启动脚本前,需根据自己的实际情况调整代码中的如下参数,运行成功后,可以查看smith的跟踪情况                  
**调整1:默认非流式输出 True or False**                         
stream_flag = False                      
**调整2:检查URL地址中的IP和PORT是否和main脚本中相同**                          
url = "http://localhost:8012/v1/chat/completions"    

4.5 运行main.py初始化langchain框架

(.venv) PS E:\PromptLangChainTest\basic> python .\main.py
2026-05-12 16:05:29,444 - __main__ - INFO - 在端口 8012 上启动服务器
INFO:     Started server process [20548]
INFO:     Waiting for application startup.
2026-05-12 16:05:29,478 - __main__ - INFO - 正在初始化模型、提取prompt模版、定义chain...
2026-05-12 16:05:30,631 - __main__ - INFO - 初始化完成
INFO:     Application startup complete.
INFO:     Uvicorn running on http://0.0.0.0:8012 (Press CTRL+C to quit)

注意: 初始化时,可能会因为windows系统原因报gbk文件解码错误,可在运行main.py脚本前,将项目文件main.py中的以下两行代码指定utf-8字符集

main.py文件152行左右

 prompt_template_system = PromptTemplate.from_file(PROMPT_TEMPLATE_TXT_SYS,encoding="utf-8")
 prompt_template_user = PromptTemplate.from_file(PROMPT_TEMPLATE_TXT_USER,encoding="utf-8")

4.6 运行apiTest.py测试问答

(.venv) PS E:\PromptLangChainTest\basic> python .\apiTest.py
2026-05-12 16:06:34,544 - __main__ - INFO - 非流式输出,响应内容是: 哈哈,我们这儿最贵的套餐是无限套餐,月费300元,1000G流量,够你随便刷视频、打游戏啦!

(.venv) PS E:\PromptLangChainTest\basic> python .\apiTest.py
2026-05-12 16:06:49,587 - __main__ - INFO - 非流式输出,响应内容是: 您说的是哪个套餐呀?能告诉我名字吗?我帮您查查具体价格~       

(.venv) PS E:\PromptLangChainTest\basic> python .\apiTest.py
2026-05-12 16:07:03,324 - __main__ - INFO - 非流式输出,响应内容是: 有的!我们畅游套餐100G流量,月费180元;还有无限套餐,1000G流量月费300元,流量管够!您看哪个更合心意?> python .\apiTest.py

5、大模型短期记忆、长期记忆

5.1 运行测试案例

在项目的withMemoryTest目录下,同样修改main.py中的变量定义,运行main.py启动api,然后在apiTest.py测试对话,可以发现大模型在进行回答时,会参考上下文(也就是相当于有记忆)进行回答。

5.2 功能实现

  • 定义get_session_history获取近期历史对话
    在这里插入图片描述
  • 使用langchain中的RunnableWithMessageHistory将历史对话添加到chain中
    在这里插入图片描述

6、思维链(Chain-of-thought COT)

6.1 说明

让大模型在处理复杂问题时,能够像人的思维一样,一步一步分析处理,从而使结果准确性更高
实际应用:在构建提示词时可以加上【请一步一步分析后再作出回答】

6.2 测试

运行项目下cot目录中的代码
第一次运行,没有启用思维链的方式,模型回答可能不准确
在这里插入图片描述
第二次运行,在运行前修改系统提示词,引入思维链,回答时可以看到模型思考的过程,答案会更准确

在这里插入图片描述
在这里插入图片描述

7、自洽性 (self-consistency)

7.1 说明

自洽性,让大模型对一个问题进行多次回答,然后根据每次回答的准确性,确定最终的答案
像人做数学题一样,进行多次验算,确认最后的结果,让答案更准确

7.2 测试

运行项目下selfConsistency中的代码,可以看到模型回答时会有多次思考的过程
在这里插入图片描述

8、思维树(Tree-of-thought ToT)

8.1 说明

思维树是对思维链的一种扩展
传统的思维链在思考问题时,总是线性的,围绕着某一个种可能做深度的分析,最终给出结果
思维树,相当于在思考问题时,要从多种不同的维度进行不停的分析,每种思考的维度就像一个树枝一个,最终形成一个树状的结构。目的最终一样是希望结果更准确更有效率。

8.2 测试

运行项目下tot目录的代码测试

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐