之前deepseek很火,我也对AI智能,大模型这方面产生了兴趣,就开始了解这块相关内容了。也写一些文档,来记录学习过程。
这就从deepseek开始了学习之路
一、登录官网,创建key
deepseek的api接入官网:https://platform.deepseek.com/sign_in
登录成功后,创建一个属于自己的key,deepseek给了10块钱免费额度可以使用,可以放心大胆使用。
二、简单使用
deepseek接口文档
通过接口文档给出的代码,可以简单进行使用。
- 安装所需的python库
pip install openai
- 调用访问传递不同的模型,调用deepseek完成对应功能的处理
官网的例子这里给出了以下模型:
-
deepseek-chat 模型已全面升级为 DeepSeek-V3,接口不变。 通过指定 model=‘deepseek-chat’ 即可调用 DeepSeek-V3。
-
deepseek-reasoner 是 DeepSeek 最新推出的推理模型 DeepSeek-R1。通过指定 model=‘deepseek-reasoner’,即可调用 DeepSeek-R1。
from openai import OpenAIclient = OpenAI(api_key="sk-167xx", base_url="https://api.deepseek.com")response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "你是一个智能导游助手,能回答人们提出的旅游相关所有问题"},{"role": "user", "content": "请帮我规划一个去云南旅游的5天计划,尽量包含当地美食,但同时请避坑"},],stream=False
)print(respo)"""
当然可以!云南是一个风景如画、文化多样的地方,5天的行程可以让你体验到自然美景和丰富的民族文化。以下是一个详细的5天云南旅游计划,包含当地美食推荐和避坑建议。### 第1天:昆明
- **上午**:抵达昆明,前往翠湖公园散步,感受昆明的悠闲氛围。
- **中午**:品尝云南过桥米线,推荐“桥香园”或“建新园”。
- **下午**:参观云南民族村,了解云南各民族文化。
- **晚上**:在昆明老街品尝小吃,如烧豆腐、汽锅鸡。**避坑建议**:避免在景区内购买纪念品,价格通常较高。### 第2天:大理
- **上午**:乘车前往大理,游览大理古城,感受白族文化。
- **中午**:品尝大理砂锅鱼,推荐“大理砂锅鱼馆”。
- **下午**:乘船游洱海,欣赏苍山洱海的美景。
- **晚上**:在大理古城品尝白族三道茶。**避坑建议**:洱海游船选择正规公司,避免私人船只。### 第3天:丽江
- **上午**:乘车前往丽江,游览丽江古城,感受纳西族文化。
- **中午**:品尝丽江腊排骨火锅,推荐“阿婆腊排骨”。
- **下午**:参观黑龙潭公园,远眺玉龙雪山。
- **晚上**:在丽江古城品尝纳西烤鱼。**避坑建议**:丽江古城内酒吧较多,注意消费陷阱。### 第4天:玉龙雪山
- **上午**:前往玉龙雪山,乘坐缆车登顶,欣赏雪山美景。
- **中午**:在雪山脚下品尝纳西族特色菜,如纳西烤乳猪。
- **下午**:游览蓝月谷,感受清澈的湖水。
- **晚上**:返回丽江古城,品尝丽江粑粑。**避坑建议**:玉龙雪山海拔较高,注意防寒和高原反应。### 第5天:香格里拉
- **上午**:乘车前往香格里拉,游览松赞林寺,感受藏传佛教文化。
- **中午**:品尝藏式火锅,推荐“香格里拉藏式火锅”。
- **下午**:游览普达措国家公园,欣赏高原湖泊和草原。
- **晚上**:返回丽江或昆明,结束行程。**避坑建议**:香格里拉海拔较高,注意高原反应,避免剧烈运动。### 美食推荐
- **昆明**:过桥米线、汽锅鸡、烧豆腐。
- **大理**:砂锅鱼、白族三道茶、乳扇。
- **丽江**:腊排骨火锅、纳西烤鱼、丽江粑粑。
- **香格里拉**:藏式火锅、酥油茶、青稞酒。### 避坑总结
1. **交通**:选择正规交通工具,避免黑车。
2. **住宿**:提前预订酒店,避免旺季无房。
3. **购物**:避免在景区内购买纪念品,选择正规商店。
4. **饮食**:选择口碑好的餐厅,避免路边摊卫生问题。
5. **高原反应**:玉龙雪山和香格里拉海拔较高,注意防寒和避免剧烈运动。希望这个行程能帮助你更好地规划云南之旅,祝你旅途愉快!"""
上面实现了简单使用deepseek的功能,但是这里也存在一些疑惑和问题。
三、存在的疑问
3.1 上下文关联问题
简单修改一下代码,实现多轮对话
# coding=utf-8
"""@project: LLM_study@file: 使用deepseek.py@Author:John@date:2025/2/22 14:55
"""
from openai import OpenAIclient = OpenAI(api_key="sk-167xx", base_url="https://api.deepseek.com")i = 0while True:query = input(f'第{i}轮对话,请输入问题:')i += 1 # 循环次数response = client.chat.completions.create(model="deepseek-chat",messages=[{"role": "system", "content": "你是一个智能助手"},{"role": "user", "content": query},],stream=False)print(response.choices[0].message.content)
可以看出大模型,本身并不具备上下文联系的能力。
当然,我们也可以手动把每次的问题和结果的返回数据保存下来。在每次调用时,都把所有结果传给deepseek。
......
message_list = [{"role": "system", "content": "你是一个智能助手"}]while True:query = input(f'第{i}轮对话,请输入问题:')i += 1 # 循环次数message_list.append({"role": "user", "content": query})response = client.chat.completions.create(model="deepseek-chat",messages=message_list,stream=False)answer = response.choices[0].message.contentprint(answer)message_list.append({"role": "assistant", "content": answer})
可以看到,这次问答,大模型就记住我了,因为我把前后文聊天记录都传递给他了
但这种别人肯定有更好的实现方法,这就是后续需要学习的其他东西之一吧。
3.2 数据时间和内容问题
大模型本身是训练出来的, 数据肯定有一个截止时间,那么问他最新的时间的问题,他是无法回答的。
可以看到它的数据截止时间是2023年10月的。
如果在它截止时间之前,但是数据是公司内部的保密数据,并没有在网上的数据等,那它也是无法分析得出结果的。
所以后续肯定还需要给大模型“补充数据”,这个补充可以是自己给他一份文档让他阅读存储,例如公司自己的内部文档,数据库文档,等等。也可以是增加联网搜索,把搜索的结果传递给它,再让他结合结果分析问题,给出答案。
3.3 市面上大模型很多,单独调用问题
市面上的大模型太多了,比如chatgpt的,还有qwen的,deepseek的,每个大模型都有自己不同的调用方法,如果都是这样自己一套调用方法,那么切换使用大模型是极其繁琐的。所以需要一样工具,把这些整合在一起。LangChain就是这样的开源工具,所以选择去学习它。