AI Agent案例实践:三种智能体开发模式详解之一,从零构建高考数据分析智能助手(手写代码)
同时课程详细介绍了。
本文详细介绍了AI Agent在高考数据分析场景的开发实践,通过手写代码实现RAG检索、NL2SQL生成和数据分析功能。文章展示了完整的开发流程,包括MySQL数据存储、ElasticSearch语义检索、大模型调用等关键技术,为开发者提供了可直接参考的实战案例,帮助理解AI Agent核心概念与主流框架应用。
在大模型与智能体应用场景层出不穷的今天,作为一名不断学习的信息化数字化从业者,我们可以实践一下AI Agent基本开发流程,理论联系实践,以加深我们对AI Agent的了解。
本文是Chaiys同学基于一个简单业务场景详细描述的AI Agent开发实践案例,可以用于熟悉RAG、工具调用、ReAct等概念,可以体验LangChain和QwenAgent等AI Agent主流开发框架。
一、案例描述
1.1. 业务场景
这里我们设计一个简单的场景:2025年,一位高三的同学在高考结束之后,借助AI Agent简单的查询了解一下2016年到2024的考生人数、录取人数、复读人数、普通高校数量、本科录取人数、专科录取人数这些基本信息,对历年高考考生规模做一个基本了解,借助小助手做一个简单分析预测。
基于这个场景,我们梳理一下我们的Agent需要实现的功能:用户输入自然语言查询高考录取相关信息,Agent自动生成查询SQL,查询完毕后附带简要分析输出,具体如下:
- 结构化的数据需要后台运维,进行持久化存储,采用Mysql存储,涉及多张表的数据;
- 元数据结构采用ElasticSearch8存储,可向量化KNN匹配;
- 自然语言解析出查询SQL需要借助大模型匹配元数据结构,然后编写提示词生成SQL;
- 生成的SQL需要到Mysql查询数据;
- 查询完毕的数据还需要借助大模型分析一下返回。
1.2. 数据准备
对于高考信息,我们需要存储到Mysql的结构化的表中,以便搜索查询数据,表结构如下:
droptable college_entrance_examination;
droptable college_entrance_admission;
createtable college_entrance_examination (
examination_year integerNOTNULL COMMENT '高考年份',
candidates_count decimal(10,2) NOTNULL COMMENT '考生人数(万人)',
retake_count decimal(10,2) COMMENT '复读人数(万人)',
primary key (examination_year)
) comment '考生人数与复读人数信息表,包含字段:高考年份(主键)、考生人数(万人)、复读人数(万人)';
createtable college_entrance_admission (
admission_year integerNOTNULL COMMENT '录取年份',
admission_count decimal(10,2) NOTNULL COMMENT '录取人数(万人)',
university_count integer COMMENT '普通高中招生高校数',
undergraduate_admission_count decimal(10,2) COMMENT '本科录取人数(万人)',
specialty_admission_count decimal(10,2) COMMENT '专科录取人数(万人)',
primary key (admission_year)
) comment '录取人数与普通高校数信息表,包含字段:录取年份(主键)、录取人数(万人)、普通高中招生高校数、本科录取人数(万人)、专科录取人数(万人)';
数据如下:
insertinto college_entrance_examination(
examination_year,candidates_count,retake_count
) values
(2016,940,117),
(2017,940,143.39),
(2018,975,172.1),
(2019,1031,230.95),
(2020,1071,242.2),
(2021,1078,187),
(2022,1193,316.56),
(2023,1291,210),
(2024,1342,413)
;
insertinto college_entrance_admission(
admission_year,admission_count,university_count,
undergraduate_admission_count,specialty_admission_count
) values
(2016,772,2595,405,367),
(2017,761.49,2631,410,351),
(2018,790.99,2663,422,369),
(2019,820,2688,431,389),
(2020,967.45,2740,443,524.45),
(2021,1001.32,2759,448.74,552.58),
(2022,1014.54,2760,467.18,547.36),
(2023,1058.21,2820,482.89,575.32),
(2024,1068.9,2868,478.16, 590.74)
;
注:上述高考考生基本数据来源于互联网、教育局网站。
注:具体业务上可能远远不止一个数据源、两张表,需要根据用户问题使用RAG检索匹配具体使用哪个数据源的哪个表,本次实践仅仅使用两张表模拟多数据源的业务场景,为语义匹配流程开发做一个学习与了解!
接下来我们分别用手写代码、基于LangChain框架、基于QwenAgent框架等三种不同的模式进行AI Agent的实践探索。
二、开发实践(手写代码)
2.1. 总体架构
1、API服务(API Service)对智能体提供类似MCP的工具服务;
2、智能体(AI Data Analysis Agent)对用户输入的自然语言查数进行回答,执行过程中调用相应的API服务;
3、同时智能体具有简单的容错流程:未匹配到元数据时结束流程并进行提示、生成的SQL未查询到数据时结束流程并进行提示;
2.2. 实现流程
按照我们上面的核心业务梳理实现流程,手写一个Workflow,主要是根据用户问题,先匹配数据源的表结构,再生成SQL、查数和分析。
2.3. 智能体代码实践
具体开发实现如下(agent_service.py):
import sys
import re
import json
from api_service import QueryService,SemanticServce,AnalysisService
# metadata init 元数据初始向量化过程
definit():
print("开始执行方法init")
queryService = QueryService()
semanticService = SemanticServce()
# 1. 从mysql中获取表结构元数据信息
results = queryService.query(
"""
SELECT
t.TABLE_NAME AS '表名',
t.TABLE_COMMENT AS '表备注',
c.COLUMN_NAME AS '字段名',
c.COLUMN_TYPE AS '字段类型',
c.COLUMN_COMMENT AS '字段备注'
FROM
INFORMATION_SCHEMA.TABLES t
INNER JOIN
INFORMATION_SCHEMA.COLUMNS c
ON t.TABLE_NAME = c.TABLE_NAME AND t.TABLE_SCHEMA = c.TABLE_SCHEMA
WHERE
t.TABLE_SCHEMA = 'chaiys'
and t.table_name in ('college_entrance_admission','college_entrance_examination')
ORDER BY
t.TABLE_NAME,
c.ORDINAL_POSITION
"""
)
table_data = {}
for row in results:
table_name = row[0]
if table_name notin table_data:
table_data[table_name] = {
'表名': table_name,
'表备注': row[1],
'字段列表': []
}
# 添加字段信息
table_data[table_name]['字段列表'].append({
'字段名': row[2],
'字段类型': row[3],
'字段备注': row[4]
})
print(table_data)
semanticService.create_index()
# 转换为列表形式
for table_name inlist(table_data.keys()):
table = table_data[table_name]
# 2. 向量化表结构元数据信息并插入ES索引
semanticService.vectorize_and_index(table_name, json.dumps(table, ensure_ascii=False))
# agent flow 智能体核心流程
defchat(user_query):
print("执行方法chat")
queryService = QueryService()
semanticService = SemanticServce()
analysisService = AnalysisService()
# 1. 语义匹配
table = semanticService.hybrid_search(user_query, 1)
ifnot table:
print(f"未匹配到字段")
return
table_list = [t["table_info"] for t in table]
prompt = f"""
你是一个MySQL专家。根据以下表结构信息:
{table_list}
用户查询:"{user_query}"
生成标准MYSQL查询语句。
要求:
1. 只输出MYSQL语句,不要额外解释
2. 根据语义和字段类型,使用COUNT/SUM/AVG等聚合函数进行计算,非必须
3. 给生成的字段取一个简短的中文名称
输出格式:使用[]包含sql文本即可,不需要其他输出,便于解析,例如:[select 1 from dual]
"""
print(f"PROMPT={prompt}")
# 2. 大模型生成SQL
str1 = analysisService.analysis(prompt)
sql = re.search(r'\[(.*?)\]', str1, re.DOTALL).group(1).strip()
# 3. 执行查询
if sql:
resultSet = queryService.query_with_column(sql)
print(f"resultSet={resultSet}")
# 基础分析
prompt2 = f"""
根据以下表结构信息:
{table_list}
查询SQL:
{sql}
和以下数据信息:
{resultSet}
用户查询:"{user_query}"
生成一段简要分析,加上一些预测总结的内容
"""
print(f"PROMPT={prompt2}")
analysisService.analysis(prompt2)
if __name__ == "__main__":
# 获取命令行参数
args = sys.argv[1:] # 第一个参数是脚本名,跳过
ifnot args:
print("请提供参数:init或者chat+user_query")
elif args[0] == "init":
init()
elif args[0] == "chat":
print(f"user_query={args[1]}")
chat(args[1])
else:
print(f"未知参数: {args[0]}")
2.4. API服务代码实践
这里的API服务,指的是为智能体的实现提供服务调用,文件名称api_service.py。
2.4.1. 语义检索服务(Semantics API)
语义服务有两个功能:
1、将元数据向量化到ES8,调用文本嵌入向量模型llama2向量化自然语言,生成4096高维向量;
2、自然语言匹配元数据返回,调用文本嵌入向量模型llama2向量化后,调用ES8使用KNN检索topK数据+分词检索topK数据,混合计算得分后返回最终topK,即简化版的外置检索增强生成(RAG);
具体开发实现如下:
import requests
import json
from elasticsearch import Elasticsearch
# Semantics API
classSemanticServce:
def__init__(self):
self.es_client = Elasticsearch(
hosts=["https://localhost:9200"],
basic_auth=("elastic", "FxCZQXMLEoZLAIvsghQy"),
ca_certs="./es_http_ca.crt",
verify_certs=True
)
# 向量化模型
self.ollama_host = "http://localhost:11434/api/embeddings"
self.metadata_index = "metadata_index"
self.modal_name = "llama2"
self.mapping = {
"mappings": {
"properties": {
"table_info": {
"type": "text",
"analyzer": "ik_max_word", # 中文分词
"search_analyzer": "ik_smart"
},
"nomic_embedding": {
"type": "dense_vector",
"dims": 4096,
"index": True,
"similarity": "cosine",
}
}
}
}
defget_embedding(self, text):
"""使用 Ollama 生成文本嵌入向量"""
try:
print(f"调用大模型llama2向量化:{text}")
response = requests.post(self.ollama_host, json={"model": self.modal_name, "prompt": text})
response.raise_for_status()
embedding = response.json()["embedding"]
return embedding
except Exception as e:
raise RuntimeError(f"嵌入生成失败: {str(e)}")
defdelete_index(self):
"""安全删除索引"""
try:
ifself.es_client.indices.exists(index=self.metadata_index):
self.es_client.indices.delete(index=self.metadata_index)
print(f"索引 {self.metadata_index} 删除成功")
returnTrue
returnNone
except Exception as e:
print(f"删除索引失败: {type(e).__name__}: {str(e)}")
returnFalse
defcreate_index(self):
self.delete_index()
"""创建支持nomic向量的索引"""
self.es_client.indices.create(index=self.metadata_index, body=self.mapping)
print(f"索引 {self.metadata_index} 创建成功")
defvectorize_and_index(self, prompt, content):
"""生成文本嵌入向量并插入索引"""
doc = {
"table_info": content,
"nomic_embedding": self.get_embedding(prompt)
}
self.es_client.index(index=self.metadata_index, document=doc)
self.es_client.indices.refresh(index=self.metadata_index)
print(f"表信息 {prompt}:{content} 向量化成功")
defsemantic_search(self, user_query, k):
"""执行语义相似度搜索"""
query_embedding = self.get_embedding(user_query)
knn_query = {
"knn": {
"field": "nomic_embedding",
"query_vector": query_embedding,
"k": k,
"num_candidates": 100# 这就是ef_search参数
},
"_source": ["table_info"] # 返回原始问题
}
response = self.es_client.search(index=self.metadata_index, body=knn_query)
table_info = [
{
"score": hit["_score"],
"table_info": hit["_source"]["table_info"],
"id": hit["_id"]
}
for hit in response["hits"]["hits"]
]
print(f"自然语言语义检索字段成功,匹配到的元数据信息:{table_info}")
return table_info
defkeyword_search(self, user_query: str, k) -> list:
"""基于分词的关键词匹配搜索"""
search_query = {
"query": {
"bool": {
"should": [
{
"match": {
"table_info": {
"query": user_query,
"analyzer": "ik_smart", # 使用IK中文分词器
"boost": 1.0
}
}
},
{
"match_phrase": {
"table_info": {
"query": user_query,
"slop": 2, # 允许短语间隔
"boost": 0.5
}
}
}
]
}
},
"size": k,
"_source": ["table_info"],
"highlight": {
"fields": {
"table_info": {} # 返回高亮片段
}
}
}
response = self.es_client.search(index=self.metadata_index, body=search_query)
table_info = [
{
"score": hit["_score"],
"table_info": hit["_source"]["table_info"],
"id": hit["_id"],
"highlight": hit.get("highlight", {}).get("table_info", [])
}
for hit in response["hits"]["hits"]
]
print(f"自然语言分词搜索字段成功,匹配到的元数据信息:{table_info}")
return table_info
defhybrid_search(self, user_query: str, k, alpha: float = 0.7) -> list:
"""混合搜索(语义+关键词)"""
# 语义搜索
semantic_results = self.semantic_search(user_query, k * 2)
semantic_map = {hit["id"]: hit for hit in semantic_results}
# 关键词搜索
keyword_results = self.keyword_search(user_query, k * 2)
keyword_map = {hit["id"]: hit for hit in keyword_results}
# 合并结果
all_ids = set(semantic_map.keys()) | set(keyword_map.keys())
combined = []
for doc_id in all_ids:
semantic_score = semantic_map.get(doc_id, {}).get("score", 0)
keyword_score = keyword_map.get(doc_id, {}).get("score", 0)
combined.append({
"id": doc_id,
"table_info": semantic_map.get(doc_id, keyword_map.get(doc_id))["table_info"],
"semantic_score": semantic_score,
"keyword_score": keyword_score,
"combined_score": alpha * semantic_score + (1 - alpha) * keyword_score,
"highlight": keyword_map.get(doc_id, {}).get("highlight", [])
})
# 按综合分数排序
combined.sort(key=lambda x: x["combined_score"], reverse=True)
table_info = combined[:k]
print(f"自然语言混合检索字段成功,匹配到的元数据信息:{table_info}")
return table_info
2.4.2. 大模型调用服务(Analysis API)
大模型调用服务中,我们直接调用本地部署的deepseek-r1:32b大模型,根据传入的提示词进行处理,可以用于根据自然语言生成SQL即NL2SQL,也可以用于对查询结果数据进行简单总结和分析,具体开发实现如下:
import requests
import json
# Analysis API
classAnalysisService:
def__init__(self):
self.ollama_host = "http://localhost:11434/api/chat"
defanalysis(self, prompt):
# 发送POST请求
str = ""
# 请求数据
data = {
"model": "deepseek-r1:32b",
"messages": [
{"role": "user", "content": prompt}
],
"stream": True
}
with requests.post(self.ollama_host, json=data, stream=True) as response:
# 处理流式响应
for line in response.iter_lines():
if line:
decoded_line = line.decode('utf-8')
try:
# 解析JSON数据
chunk = json.loads(decoded_line)
str += chunk['message']['content']
# 打印消息内容
print(chunk['message']['content'], end='', flush=True)
except json.JSONDecodeError:
print(f"无法解析JSON: {decoded_line}")
returnstr
2.4.3. 数据查询服务(Query API)
本服务主要是根据输入SQL连接数据库进行实际查询,智能体利用大模型服务生成SQL后,还需要调用此服务查询数据,具体开发实现如下:
import pymysql
import requests
import json
import decimal
from elasticsearch import Elasticsearch
# Query API
classQueryService:
def__init__(self):
self.host = "127.0.0.1"
self.username = "root"
self.password = "XXXXX"
self.database = "chaiys"
defquery(self, sql):
global conn
try:
# 连接MySQL获取表结构
conn = pymysql.connect(host=self.host, port=3306, user=self.username, password=self.password, database=self.database)
cursor = conn.cursor()
cursor.execute(sql)
# 返回字段列表
return cursor.fetchall()
finally:
conn.close()
defquery_with_column(self, sql):
global conn
try:
# 连接MySQL获取表结构
conn = pymysql.connect(
host=self.host,
user=self.username,
password=self.password,
database=self.database
)
cursor = conn.cursor()
cursor.execute(sql)
# 获取字段名称
columns = [col[0] for col in cursor.description]
# 获取数据
data = cursor.fetchall()
# 将数据转换为字典列表格式
# 将数据转换为字典列表格式
result = []
for row in data:
# 处理每个字段的值
processed_row = []
for value in row:
ifisinstance(value, decimal.Decimal):
# 转换为 float 或 str
processed_row.append(float(value)) # 或 str(value)
else:
processed_row.append(value)
result.append(dict(zip(columns, processed_row)))
return result
finally:
conn.close()
2.5. 测试结果
我们设计一些简单的相关问题,进行提问测试:
问题1:2016年的考生人数有多少?
运行python agent_service.py chat ‘2016年的考生人数有多少?’,主要输出结果如下:
########## 第一步:元数据RAG检索结果 ##########
[{'table_info': '{"表名": "college_entrance_examination", "表备注": "考生人数与复读人数信息表,包含字段:高考年份(主键)、考生人数(万人)、复读人数(万人),考生人数是指参加高考的学生的数量,复读人数是指参加高考的复读学生的数量", "字段列表": [{"字段名": ...省略若干字段信息...}]}']}]
########## 第二步:大模型调用NL2SQL ##########
########## 提示词 ##########
你是一个MySQL专家。根据以下表结构信息:
['{"表名": "college_entrance_examination", "表备注": "考生人数与复读人数信息表,包含字段:...省略...}]}']
用户查询:"'2016年的考生人数有多少?'"
生成标准MYSQL查询语句。
要求:
1. 只输出MYSQL语句,不要额外解释
2. 根据语义和字段类型,使用COUNT/SUM/AVG等聚合函数进行计算,非必须
3. 给生成的字段取一个简短的中文名称
输出格式:使用[]包含sql文本即可,不需要其他输出,便于解析,例如:[select 1from dual]
########## 结果 ##########
<think>
好,我来想想怎么解决这个问题。用户的问题是:“2016年的考生人数有多少?”首先,我需要理解问题中的关键词和要求。
表名是college_entrance_examination,里面有关于高考的数据。字段有三个:examination_year(高考年份),candidates_count(考生人数,单位是万人),retake_count(复读人数,也是万人)。主键是examination_year,所以每个年份只有一条记录。
用户问的是2016年的考生人数,也就是要查询candidates_count这一字段。因为这是一个具体的数值,并不需要聚合函数计算,直接查就可以了。
所以,我需要写一个SELECT语句,从这个表中选取candidates_count,条件是examination_year等于2016年。同时,给结果的字段取个简短的名字,比如“考生人数”。
检查一下数据类型,candidates_count是decimal(10,2),所以不需要处理,直接显示就可以了。
最后,拼装SQL语句就是:SELECT candidates_count AS 考生人数 FROM college_entrance_examination WHERE examination_year = 2016;
这样就能准确地返回用户需要的信息了。
</think>
[select candidates_count as 考生人数 from college_entrance_examination where examination_year=2016]执行SQL:select candidates_count as 考生人数 from college_entrance_examination where examination_year=2016
########## 第三步:查询数据结果 ##########
[{'考生人数': 940.0}]
########## 第四步:数据分析 ##########
########## 提示词 ##########
根据以下表结构信息:
['{"表名": "college_entrance_examination", "表备注": "考生人数与复读人数信息表,包含字段:高考... 省略若干字段信息... "}]}']
查询SQL:
select candidates_count as 考生人数 from college_entrance_examination where examination_year=2016
和以下数据信息:
[{'考生人数': 940.0}]
用户查询:"'2016年的考生人数有多少?'"
生成一段简要分析,加上一些预测总结的内容
########## 结果 ##########
<think>
好的,我现在需要帮用户生成一个关于2016年高考考生人数的分析和预测。首先,我得仔细理解用户提供的信息。
用户给出了表结构,里面包括了高考年份、考生人数和复读人数。查询语句是选中2016年的考生人数,结果得到940.0万人。那用户的问题就是问“2016年的考生人数有多少?”
接下来,我需要分析这个数据。首先,...省略...
然后,思考为什么用户会问这个问题...省略...政策影响等。
接下来是预测部分。我需要基于2016年的数据进行合理的...省略...趋势。
还要考虑可能的因素,比如...省略...
最后,要总结一下。2016年的数据是...省略...
</think>
### 数据分析与预测总结
1. **数据分析**:
- 2016 年高考考生人数为 940 万人,这一数据反映了当年参加高考的学生总数。
- 高考考生人数的变化受多种因素影响,例如人口结构、教育政策调整以及复读人数的变化等。
2. **预测总结**:
- 根据近年来高考报名人数的趋势,预计未来几年高考考生人数可能会继续保持增长趋势。这主要是由于适龄人口数量的增加以及教育资源普及率的提高。
- 复读人数也可能对总考生人数产生一定影响。如果复读人数逐年减少,可能会影响高考考生人数的增长速度。
综上所述,2016 年高考考生人数为 940 万人,这一数据为我们了解当年高考的基本情况提供了重要参考。未来,高考考生人数可能会继续增长,但增速可能会趋于平稳。
可以看到,语义混合检索返回的一个表结构命中元数据考生人数信息表,正常生成SQL,并查询到考生人数,最后调用大模型简单分析返回。
问题2:2016年的录取人数有多少?
运行python agent_service.py chat ‘2016年的录取人数有多少?’,主要输出结果如下:
########## 第一步:元数据RAG检索结果 ##########
[{'table_info': '{"表名":"college_entrance_admission","表备注":"录取人数与普通高校数信息表,包含字段:录取年份(主键)、录取人数(万人)、普通高中招生高校数、本科录取人数(万人)、专科录取人数(万人),录取人数是指录取或者招收、招录的学生的数量"...省略若干字
为了减少文字,表结构信息这里省略了,用户这个问题通过语义检索到的表(college_entrance_admission),和前面一个问题检索到的表(college_entrance_examination)不同,
########## 第二步:大模型调用NL2SQL ##########
########## 提示词 ##########
你是一个MySQL专家。根据以下表结构信息:...省略若干字prompt和think过程
[select admission_count as 录取人数 from college_entrance_admission where admission_year=2016]执行SQL:select admission_count as 录取人数 from college_entrance_admission where admission_year=2016
########## 第三步:查询数据结果 ##########
[{'录取人数': 772.0}]
########## 第四步:数据分析 ##########
########## 提示词 ##########
根据以下表结构信息:...省略若干字Prompt和think过程
2016年高考的录取人数为772.0万人。这一数据反映了当年全国范围内普通高校招生的整体情况。
**分析:**
- 从历史趋势来看,...省略若干字
- 录取人数的变化还可能...省略若干字
**预测总结:**
- 预计未来几年高考录取人数可能...省略若干字
可以看到,语义混合检索返回的一个表结构命中元数据录取人数信息表,正常生成SQL,并查询到录取人数的信息,最后调用大模型简单分析数据返回。
本文说明:本文因为太长所以分成三篇文章,这是第一篇,还有两篇分别描述基于LangChain 框架和QwenAgent框架的实践过程,欢迎各位亲追剧哈。
零基础如何高效学习大模型?
你是否懂 AI,是否具备利用大模型去开发应用能力,是否能够对大模型进行调优,将会是决定自己职业前景的重要参数。
为了帮助大家打破壁垒,快速了解大模型核心技术原理,学习相关大模型技术。从原理出发真正入局大模型。在这里我和鲁为民博士系统梳理大模型学习脉络,这份 LLM大模型资料
分享出来:包括LLM大模型书籍、640套大模型行业报告、LLM大模型学习视频、LLM大模型学习路线、开源大模型学习教程
等, 😝有需要的小伙伴,可以 扫描下方二维码免费领取🆓**⬇️⬇️⬇️
【大模型全套视频教程】
教程从当下的市场现状和趋势出发,分析各个岗位人才需求,带你充分了解自身情况,get 到适合自己的 AI 大模型入门学习路线。
从基础的 prompt 工程入手,逐步深入到 Agents,其中更是详细介绍了 LLM 最重要的编程框架 LangChain。最后把微调与预训练进行了对比介绍与分析。
同时课程详细介绍了AI大模型技能图谱知识树,规划属于你自己的大模型学习路线,并且专门提前收集了大家对大模型常见的疑问,集中解答所有疑惑!
深耕 AI 领域技术专家带你快速入门大模型
跟着行业技术专家免费学习的机会非常难得,相信跟着学习下来能够对大模型有更加深刻的认知和理解,也能真正利用起大模型,从而“弯道超车”,实现职业跃迁!
【精选AI大模型权威PDF书籍/教程】
精心筛选的经典与前沿并重的电子书和教程合集,包含《深度学习》等一百多本书籍和讲义精要等材料。绝对是深入理解理论、夯实基础的不二之选。
【AI 大模型面试题 】
除了 AI 入门课程,我还给大家准备了非常全面的**「AI 大模型面试题」,**包括字节、腾讯等一线大厂的 AI 岗面经分享、LLMs、Transformer、RAG 面试真题等,帮你在面试大模型工作中更快一步。
【大厂 AI 岗位面经分享(92份)】
【AI 大模型面试真题(102 道)】
【LLMs 面试真题(97 道)】
【640套 AI 大模型行业研究报告】
【AI大模型完整版学习路线图(2025版)】
明确学习方向,2025年 AI 要学什么,这一张图就够了!
👇👇点击下方卡片链接免费领取全部内容👇👇
抓住AI浪潮,重塑职业未来!
科技行业正处于深刻变革之中。英特尔等巨头近期进行结构性调整,缩减部分传统岗位,同时AI相关技术岗位(尤其是大模型方向)需求激增,已成为不争的事实。具备相关技能的人才在就业市场上正变得炙手可热。
行业趋势洞察:
- 转型加速: 传统IT岗位面临转型压力,拥抱AI技术成为关键。
- 人才争夺战: 拥有3-5年经验、扎实AI技术功底和真实项目经验的工程师,在头部大厂及明星AI企业中的薪资竞争力显著提升(部分核心岗位可达较高水平)。
- 门槛提高: “具备AI项目实操经验”正迅速成为简历筛选的重要标准,预计未来1-2年将成为普遍门槛。
与其观望,不如行动!
面对变革,主动学习、提升技能才是应对之道。掌握AI大模型核心原理、主流应用技术与项目实战经验,是抓住时代机遇、实现职业跃迁的关键一步。
01 为什么分享这份学习资料?
当前,我国在AI大模型领域的高质量人才供给仍显不足,行业亟需更多有志于此的专业力量加入。
因此,我们决定将这份精心整理的AI大模型学习资料,无偿分享给每一位真心渴望进入这个领域、愿意投入学习的伙伴!
我们希望能为你的学习之路提供一份助力。如果在学习过程中遇到技术问题,也欢迎交流探讨,我们乐于分享所知。
*02 这份资料的价值在哪里?*
专业背书,系统构建:
-
本资料由我与鲁为民博士共同整理。鲁博士拥有清华大学学士和美国加州理工学院博士学位,在人工智能领域造诣深厚:
-
- 在IEEE Transactions等顶级学术期刊及国际会议发表论文超过50篇。
- 拥有多项中美发明专利。
- 荣获吴文俊人工智能科学技术奖(中国人工智能领域重要奖项)。
-
目前,我有幸与鲁博士共同进行人工智能相关研究。
内容实用,循序渐进:
-
资料体系化覆盖了从基础概念入门到核心技术进阶的知识点。
-
包含丰富的视频教程与实战项目案例,强调动手实践能力。
-
无论你是初探AI领域的新手,还是已有一定技术基础希望深入大模型的学习者,这份资料都能为你提供系统性的学习路径和宝贵的实践参考,助力你提升技术能力,向大模型相关岗位转型发展。
抓住机遇,开启你的AI学习之旅!
更多推荐
所有评论(0)