环境准备

1. 创建 Python 虚拟环境

推荐使用虚拟环境来隔离项目依赖:

# 方法一:使用 venv(Python 3.3+)
python3 -m venv langchain_env
source langchain_env/bin/activate  # Linux/Mac
# langchain_env\Scripts\activate  # Windows

# 方法二:使用 virtualenv
pip3 install virtualenv
virtualenv langchain_env
source langchain_env/bin/activate

# 激活后提示符会变成:
(langchain_env) user@host:~$

2. 验证 Python 环境

python3 --version  # 确保 Python 3.8+
pip3 --version     # 确保 pip3 可用

依赖安装

核心依赖包

# 使用阿里云镜像加速安装
pip3 install -U langchain -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -U langchain-community -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -U langchain-ollama -i https://mirrors.aliyun.com/pypi/simple/
pip3 install -U langchain-core -i https://mirrors.aliyun.com/pypi/simple/

Ollama 服务配置

1. 安装和启动 Ollama

# 下载并安装 Ollama
curl -fsSL https://ollama.ai/install.sh | sh

# 启动服务
ollama serve

# 下载模型(示例:deepseek-r1)
ollama pull deepseek-r1:8b

2. 验证模型可用性

# 查看已安装的模型
ollama list

# 测试模型
ollama run deepseek-r1:8b "你好,请介绍一下自己"

3. 网络配置(可选)

如果需要远程访问,配置 systemd 服务:

# 编辑服务文件
sudo vim /etc/systemd/system/ollama.service

# 添加环境变量
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_PORT=11434"
Environment="OLLAMA_ORIGINS=*"

# 重启服务
sudo systemctl daemon-reload
sudo systemctl restart ollama

基础使用示例

1. 简单对话

from langchain_ollama import ChatOllama
from langchain_core.messages import HumanMessage

# 初始化 deepseek 模型
deepseek = ChatOllama(
    base_url="http://127.0.0.1:11434",  # deepseek 服务地址
    model="deepseek-r1:8b"  # 模型名称(需提前下载)
)

# 调用模型生成回复
response = deepseek.invoke([
    HumanMessage(content="请用一句话解释人工智能是什么。")
])
print(response.content)

运行结果示例:

<think>
嗯,用户让我用一句话解释人工智能是什么。这个问题看起来简单,但其实需要精准把握核心概念。

首先得明确AI的定义范围,不能只说“机器模仿人脑”太片面了,应该涵盖从弱到强的人工智能发展现状。然后要突出技术本质——算法处理数据的能力,而不是具体方法(比如深度学习)。用户可能想要一个既通俗又专业的答案,所以用“模拟、延伸和扩展人类的智能活动能力”来解释范围比较合适。

考虑到用户可能是非专业人士想快速了解概念,或者学生写作业需要简洁定义。ta没有附加要求但用了直接提问方式,说明更注重回答效率而非细节探讨。
</think>
人工智能是一种利用算法让计算机模拟、延伸和扩展人类的智能活动能力的技术或系统。

2. 使用提示模板

from langchain_ollama import ChatOllama
from langchain_core.prompts import ChatPromptTemplate

# 初始化 deepseek 模型
deepseek = ChatOllama(
    base_url="http://10.100.200.241:11434",  # deepseek 服务地址
    model="deepseek-r1:8b"  # 模型名称(需提前下载)
)

# 定义提示模板
prompt = ChatPromptTemplate.from_template(
    "你是一个专业厨师。请用简单步骤解释如何烹饪:{dish}。"
)

# 创建对话链:模板 -> 模型 -> 输出
chain = prompt | deepseek

# 调用链并生成回答
result = chain.invoke({"dish": "红烧肉"})
print(result.content)

运行结果示例:

<think>
嗯,用户让我以专业厨师的身份来讲解红烧肉的做法。首先得确定他们想要的是经典版本还是简化版,因为红烧肉有很多变化做法。但根据常见的需求,应该选最标准的版本,这样既保留传统风味又能确保步骤清晰。

接着要考虑用户的背景。可能是个家庭厨房的新手,或者想尝试做这道菜的人,所以步骤要简单易懂,避免使用太专业的术语。需要强调关键点,比如炒糖色的过程和控制火候的重要性,因为这两步是红烧肉成败的关键。

然后得分解每个步骤,确保逻辑连贯。从准备材料开始,选材很重要,五花肉的品质直接影响成品。接下来处理食材、炸制、炒糖色这些部分不能遗漏。还要注意小贴士的部分,比如如何让肥肉变瘦和瘦肉不变,这能帮助用户避免常见问题。

可能需要检查步骤之间的衔接,比如焯水后是否要立即转入热油锅中,这样可以节省时间并保持火候。同时,在炒糖色的时候,颜色的变化是个难点,得提醒用户注意观察,并且可能提到冰糖替代白砂糖的情况,但说明味道差异更大。

还要考虑安全提示,比如处理热油时小心烫伤,使用正确工具如炒锅而不是平底锅。另外,时间安排方面,炖煮需要耐心慢火,所以建议用砂锅或铸铁锅保持温度更合适。

最后要确保整体结构流畅,材料清单明确,并且每个步骤都有对应的技巧说明。这样用户不仅能跟着做,还能理解背后的原理,做出更好的红烧肉。
</think>
好的,作为一名专业厨师,我来为你分享制作经典红烧肉的简化版核心步骤。记住,这是一道功夫菜,需要耐心和细心(特别是炒糖色那步),但我会尽量让过程清晰易懂。

**目标:** 制作色泽红亮、肥而不腻、入口即化的经典口味红烧肉。

## 核心材料

1.  **主料:** 精五花肉 (带皮,肥瘦相间为佳) - 约500克
2.  **调味料:**
    *   冰糖 或 白砂糖 - 约40-60克(冰糖风味更醇正)
    *   酱油 - 约3汤匙 (根据酱油颜色和个人喜好调整)
    *   料酒 - 约2汤匙
    *   姜片 - 几片
    *   葱段 - 一段
    *   八角/桂皮(可选)- 少量,增加风味层次
    *   食用油 (用于炸糖色和炒锅) - 约适量

## 简单步骤:

1.  **准备五花肉:**
    *   将五花肉切成2厘米左右见方的大块。
    *   处理一下:可以冷水下锅加姜片、葱段和一勺料酒焯水去腥,煮沸后撇去浮沫,洗净血污。或者直接用热水将五花肉块烫几分钟,去除表面杂质。

2.  **炸/煸炒五花肉 (可选但推荐):**
    *   在锅中倒入足量的食用油(比平时炒菜多一些),烧热后放入处理好的五花肉块。
    *   中小火慢煎:用筷子或勺子不断翻动,让肥肉部分中的油脂慢慢渗出来。这个过程要耐心,直到肉块表面金黄,出油明显增多,变得比较干爽(大约需要10-20分钟)。**这一步是为了让红烧后的肥肉不腻,口感更好。**
    *   **如果时间或设备不允许炸炒,可以跳过此步,直接用普通炒锅炒糖色并小火慢炖。**

3.  **炒糖色 (关键步骤!):**
    *   锅洗净后倒入少量食用油(比肉块需要的少),中火加热。
    *   放入冰糖/白砂糖,开始慢慢炒化。**注意:用冰糖风味更好更稳定,白砂糖颜色控制难一些且味道差异大。**
    *   糖会经历一个从透明到泛黄、再到变成焦糖色的过程:
        *   刚开始是透明液体。
        *   温度升高,糖液变稠,出现气泡。
        *   继续加热并翻炒,颜色逐渐加深(浅黄色 -> 金黄色)。
    *   **非常关键:** 当糖色变成深琥珀色或焦糖色时,立刻将步骤2中准备好的五花肉块倒入锅中快速翻炒!让每块肉都均匀地裹上糖色。这一步决定最终的颜色和风味。

4.  **调味与炖煮:**
    *   肉块裹好糖色后(如果之前没炸,现在也得小火煸一下肉表面变微黄),沿着锅边淋入料酒。
    *   接着加入酱油、姜片、葱段。翻炒均匀,让酱汁再次被肉吸收并稍微收干一点。
    *   加入足量的热水或啤酒(能没过所有肉块即可,不能加冷水)。**水量要一次到位!**
    *   **大火烧开:** 沸腾后煮约15分钟,撇去重新产生的浮沫和血渣。

5.  **慢炖 (耐心是美德):**
    *   转成中小火(甚至小火),盖上锅盖。
    *   约40-60分钟。期间检查水量,如果水少了需要加热水或开水,但必须小心不要溅到糖色和肉上。

6.  **最后收汁:**
    *   当肉块变得软烂入味时(用筷子能轻松戳透),打开锅盖转大火。
    *   不断翻炒,让汤汁变浓稠,并最终收干至你喜欢的粘稠程度,呈现诱人的红褐色或栗色。期间注意防止糊底。

7.  **装盘:**
    *   将红烧肉盛出即可享用!

## 核心技巧与小贴士

*   **选材:** 精五花是最佳选择,肥瘦相间能让成品口感俱佳。
*   **炒糖色:** 耐心观察颜色变化!火候要足够大才能让糖变焦并上色,但也要时刻警惕防止烧糊。如果没把握好,可能导致颜色不够或味道发苦。白砂糖更容易冒泡和溅出,请务必小心。
*   **水量:** 炒糖色后加足量的水是保证肉质软嫩不柴的关键。中途加水要慢,并确保锅内温度不过高(否则会破坏胶质)。
*   **肥瘦处理:** 如果不喜欢油腻,可以先将五花肉块用厨房纸吸干表面油脂;或者在炒糖色时多翻动几次让一些油脂出来。

祝你烹饪成功这道美味的红烧肉!

3. 多轮对话

from langchain_ollama import ChatOllama
from langchain_core.messages import HumanMessage, AIMessage

# 初始化 deepseek 模型
deepseek = ChatOllama(
    base_url="http://10.100.200.241:11434",  # deepseek 服务地址
    model="deepseek-r1:8b"  # 模型名称(需提前下载)
)

# 初始化对话历史
messages = [
    HumanMessage(content="你好!"),
    AIMessage(content="你好!有什么可以帮助你的?"),
    HumanMessage(content="推荐一本科幻小说。")
]

# 继续对话
response = deepseek.invoke(messages)
print("AI回复:", response.content)

运行结果示例:

AI回复: <think>
好的,用户让我推荐一本科幻小说。首先我要分析他们的请求。他们直接说需要推荐,但可能没有提供足够的背景信息。我应该考虑不同的子类型来覆盖更多可能性。

用户是男性还是女性呢?不确定,用中性称呼比较安全。年龄方面可能是年轻人或者成年人,因为提到《三体》的话,用户至少看过这本书,所以年龄层可以放宽到16岁以上。地区可能在华语区,毕竟中文推荐更常见,但也不排除其他可能性。

用户的使用场景:他们现在需要书籍推荐,可能是在寻找新的阅读材料,或者对科幻感兴趣想拓展视野。真实需求是得到合适的书目建议,而深层需求可能是希望找到符合自己口味、容易入门的经典作品,同时了解每本书的独特之处以便做出选择。

用户提到《三叶》,所以很可能已经有一定的科幻知识基础。这时候推荐其他经典可能更合适,比如阿西莫夫的机器人系列或者菲利普·K·迪克的作品,这些是公认的基石性读物,能帮助他们深入理解不同流派的特点。

需要确保推荐多样性:硬核科技、社会伦理、心理惊悚等不同类型,让用户有选择的空间。还要考虑语言问题,如果用户更习惯英文原著,可能需要调整,但根据历史回复,默认先提供中文推荐。

另外要避免重复推荐《三体》本身,虽然他们喜欢这部作品,但重点在于扩展他们的阅读范围。解释每本书的亮点和适合人群,帮助他们找到真正感兴趣的方向,并鼓励进一步探索。
</think>
好的!给你推荐几本广受好评且风格各异的经典科幻小说:

1.  **《基地》 - 艾萨克·阿西莫夫**
    *   **类型:** 社会科幻、心理史学。这通常被认为是硬核科幻的基石之一,也奠定了太空歌剧的基础。
    *   **亮点:** 创造了“银河帝国”的宏大叙事,探讨了历史预测、政治斗争和人类文明兴衰等主题。故事分为几部分(如《基地前奏》、《基地与帝国》、《第二基地》),情节复杂且引人入胜。
    *   **适合人群:** 喜欢宏大世界观设定、帝国兴亡史、智谋交锋的读者。

2.  **《银河系漫游指南》 - 道格拉斯·亚当斯**https://ollama.com/
    *   **类型:** 幽默讽刺科幻。这是一部独特的作品,将深刻的哲学思考和宇宙学概念融入轻松搞笑的情节中。
    *   **亮点:** 带你了解“无所不在的通用全息翻译机”、“ Infinite Improbability Drive (无限不可能驱动)”等著名概念,在银河系边缘进行一场充满想象力和幽默感的冒险。
    *   **适合人群:** 寻找一种轻松有趣又不失深度阅读体验的读者,喜欢脑洞大开和哲学思考。

3.  **《神经漫游者》 - 威廉·吉布森**
    *   **类型:** 赛博朋克、网络空间惊悚。这部小说是赛博朋克文学流派的奠基之作之一。
    *   **亮点:** 构建了“计算机世界”(Computer World)这一迷人的虚拟现实概念,描绘了一个充满高科技与低生活反差的未来都市景观。文风前卫、独特,充满了对人类意识和数字时代的探索。
    *   **适合人群:** 对赛博朋克世界观着迷,喜欢虚拟现实、人工智能、黑客文化和城市奇幻设定的读者。

4.  **《仿生人会梦见电子羊吗?》 - 岛田秀雄**
    *   **类型:** 赛博朋克(电影版更接近)、机器人伦理。这是菲利普·K·迪克众多经典作品中的一部,以其深刻的哲学思考和对现实的模糊处理而闻名。
    *   **亮点:** 探讨了何为“人类”、何为“真实”的深刻问题。主角瑞秋发现自己的记忆是人造的,引发了关于身份认同、情感来源以及生物与机器界限的大讨论。文风独特且充满悬念。
    *   **适合人群:** 喜欢心理惊悚、哲学探索和对未来社会伦理思考的读者。

5.  **《沙丘》 - 弗兰克·赫伯特**
    *   ** **类型:** 科幻冒险、政治阴谋、生态科幻。这是一部极其复杂且影响深远的作品,融合了多种元素。
    *   **亮点:** 构建了一个名为厄拉科斯(Dune)的沙漠行星及其独特的生态环境和政治格局。主角保罗成为传奇性的“救世主”,故事充满了权力斗争、复杂的角色关系和深刻的寓意。
    *   **适合人群:** 喜欢复杂设定、权谋斗争、异域风情和英雄史诗感的读者。

这些都是非常有代表性和影响力的科幻小说,风格迥异但都值得一读。希望你能从中找到自己喜欢的那一本!

📚 扩展阅读

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐