2024年AI开发新趋势:在Ubuntu桌面版集成LangChain+Ollama工作流

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

2024年AI开发新趋势:在Ubuntu桌面版集成LangChain+Ollama工作流

引言

随着AI技术的快速发展,本地化运行大型语言模型(LLM)成为2024年的重要趋势。本文将带你使用Ubuntu桌面版搭建一个完整的LangChain+Ollama开发环境,实现本地AI应用开发工作流。这个组合让你能在个人电脑上运行开源大模型,并通过LangChain构建复杂的AI应用链。

准备工作

硬件要求

  • Ubuntu 22.04 LTS或更高版本(推荐桌面版)
  • 至少16GB内存(运行7B参数模型)
  • 支持CUDA的NVIDIA显卡(可选,用于GPU加速)
  • 50GB可用磁盘空间

前置知识

  • 基本Linux命令行操作
  • Python编程基础
  • 了解LLM基本概念

第一步:安装Ollama本地大模型服务

1.1 安装Ollama

打开终端(Ctrl+Alt+T)执行以下命令:

代码片段
# 下载并安装Ollama
curl -fsSL https://ollama.com/install.sh | sh

# 验证安装是否成功
ollama --version

1.2 下载并运行开源大模型

Ollama支持多种开源模型,我们以Llama2为例:

代码片段
# 下载7B参数的Llama2模型(约4GB)
ollama pull llama2

# 运行模型进行测试(按Ctrl+D退出)
ollama run llama2 "你好,介绍一下你自己"

实践经验
ollama pull支持多种模型:mistralcodellamavicuna
– GPU用户可添加--gpu参数加速:ollama run llama2 --gpu

第二步:设置Python开发环境

2.1 创建虚拟环境

代码片段
# 安装Python虚拟环境工具
sudo apt install python3.10-venv -y

# 创建项目目录并进入
mkdir ai_workflow && cd ai_workflow

# 创建虚拟环境
python3 -m venv venv

# 激活虚拟环境
source venv/bin/activate

2.2 安装必要依赖包

代码片段
pip install langchain openai ollama sentence-transformers faiss-cpu

注意事项
– GPU用户可将faiss-cpu替换为faiss-gpu
sentence-transformers用于文本嵌入(embedding)

第三步:构建LangChain+Ollama工作流

3.1 LangChain基础集成示例

创建basic_chat.py文件:

代码片段
from langchain_community.llms import Ollama
from langchain.prompts import ChatPromptTemplate

# 初始化Ollama连接(默认使用localhost:11434)
llm = Ollama(model="llama2")

# 定义对话模板
prompt = ChatPromptTemplate.from_messages([
    ("system", "你是一个乐于助人的AI助手"),
    ("human", "{input}")
])

# 创建对话链
chain = prompt | llm 

# 运行对话链
response = chain.invoke({"input": "如何学习Python编程?"})
print(response)

原理说明
1. Ollama()类封装了与本地模型的通信接口
2. ChatPromptTemplate定义对话结构和系统角色设定
3. |操作符将组件连接成可执行的”链”

3.2 RAG(检索增强生成)完整示例

创建rag_demo.py文件:

代码片段
import os
from langchain_community.document_loaders import TextLoader 
from langchain_text_splitters import CharacterTextSplitter 
from langchain_community.vectorstores import FAISS 
from langchain_community.embeddings import OllamaEmbeddings 
from langchain.chains.combine_documents import create_stuff_documents_chain 
from langchain_core.prompts import ChatPromptTemplate 

# Step1:准备文档数据(这里用项目README作为示例)
loader = TextLoader("README.md") 
documents = loader.load() 

# Step2:分割文档为小块(每块500字符)
text_splitter = CharacterTextSplitter(chunk_size=500, chunk_overlap=50) 
docs = text_splitter.split_documents(documents) 

# Step3:创建向量数据库(使用本地嵌入模型)
embeddings = OllamaEmbeddings(model="llama2") 
vectorstore = FAISS.from_documents(docs, embeddings) 

# Step4:设置RAG提示模板 
prompt = ChatPromptTemplate.from_template(""" 
根据以下上下文回答问题:
<context>
{context}
</context>

问题: {input}""") 

# Step5:创建完整链条 
retriever = vectorstore.as_retriever() 
document_chain = create_stuff_documents_chain(Ollama(model="llama2"), prompt) 

def rag_query(question):
    # Step6:执行检索和生成 
    retrieved_docs = retriever.invoke(question) 
    return document_chain.invoke({
        "input": question,
        "context": retrieved_docs  
    })

# Example usage  
print(rag_query("这个项目的主要功能是什么?"))

关键点解释
1. 文档处理:将大文档分割为适合处理的小块(chunks)
2. 向量化存储:使用Llama2的嵌入能力将文本转换为向量并存储到FAISS中
3. 检索增强:先检索相关文档片段,再将其作为上下文提供给LLM生成答案

Ubuntu桌面优化技巧

GUI应用集成(可选)

创建一个简单的桌面快捷方式:

  1. sudo apt install gnome-panel
  2. gedit ~/.local/share/applications/ai-chat.desktop
    3.粘贴以下内容:
代码片段
[Desktop Entry]
Name=AI聊天助手  
Type=Application  
Exec=/bin/bash -c 'cd /path/to/your/project && source venv/bin/activate && python basic_chat.py'  
Icon=utilities-terminal  
Terminal=true  
Categories=Development;

4.保存后即可在应用菜单中找到该快捷方式

常见问题解决

Q: Ollam服务启动失败?
A:

代码片段
sudo systemctl restart ollamad.service  
journalctl -u ollamad.service -b #查看日志  

Q: LangChain报错”Connection refused”?
A:

代码片段
netstat -tulnp | grep ollamad #确保11434端口监听中  
export OLLAMA_HOST=0.0..0 #如果使用远程主机需设置此变量  

Q: GPU未被利用?
A:

代码片段
nvidia-smi #检查GPU状态  
pip uninstall faiss-cpu && pip install faiss-gpu #更换GPU版本库  

总结

本文介绍了2024年值得关注的AI开发新趋势——本地化LLM工作流搭建方法。通过Ubuntu+Ollam+LangChain的组合你可以:

✓在消费级硬件上运行开源大模型
✓免API费用保护数据隐私
✓构建复杂的RAG应用链
✓完全自主可控的开发环境

未来可以尝试:
•集成更多工具如AutoGPT
•接入语音输入输出
•开发GUI应用程序

希望这篇教程能帮助你快速上手本地AI开发!如果有任何问题欢迎在评论区讨论。

原创 高质量