AI开源工具一站式体验:上手探索原生AI能力

AI开源工具一站式体验:上手探索原生AI能力

一、为什么值得体验

近年来开源AI生态蓬勃发展,从模型推理到Agent编排,大量成熟工具让开发者无需从零造轮子。本文以轻量、可复现的代码演示,带你快速上手三类高频工具:大模型推理(Ollama)、向量检索(FAISS)、Agent工作流(LangChain)。

二、环境准备

安装Python依赖与本地模型运行时:

bash 复制代码
pip install ollama langchain langchain-community faiss-cpu
ollama pull qwen2.5:3b

三、代码演示

1. 本地大模型推理

python 复制代码
from ollama import chat

resp = chat(
    model="qwen2.5:3b",
    messages=[{"role": "user", "content": "用一句话解释什么是向量数据库"}],
)
print(resp["message"]["content"])

说明:通过 Ollama 本地加载开源模型,数据不出本机,适合私有化场景。

2. 语义检索

python 复制代码
from langchain_community.embeddings import OllamaEmbeddings
from langchain_community.vectorstores import FAISS

docs = [
    "LangChain 用于编排大模型应用",
    "FAISS 提供高效的相似度检索",
    "Ollama 支持本地模型运行",
]
embeddings = OllamaEmbeddings(model="nomic-embed-text")
store = FAISS.from_texts(docs, embeddings)

query = "如何实现本地向量检索?"
results = store.similarity_search(query, k=2)
for r in results:
    print(r.page_content)

说明:把文本切分成向量存入索引,再按语义相似度召回,是 RAG 的核心一环。

3. Agent 工作流编排

python 复制代码
from langchain.agents import AgentExecutor, create_react_agent
from langchain_community.chat_models import ChatOllama
from langchain.tools import tool
from langchain.prompts import PromptTemplate

@tool
def add(a: int, b: int) -> int:
    """计算两个整数之和"""
    return a + b

llm = ChatOllama(model="qwen2.5:3b", temperature=0)
prompt = PromptTemplate.from_template(
    "请使用提供的工具完成任务:{input}\n\n{agent_scratchpad}"
)
agent = create_react_agent(llm, [add], prompt)
executor = AgentExecutor(agent=agent, tools=[add])

print(executor.invoke({"input": "计算 12 + 30 等于多少"}))

说明:借助 LangChain 将大模型与工具结合,模型自动选择并调用函数,实现"思考-调用-回答"的闭环。

四、运行与验证

按以下顺序验证整体链路:

bash 复制代码
python demo_inference.py   # 模型推理
python demo_rag.py         # 语义检索
python demo_agent.py       # Agent 调用工具

预期输出:推理返回中文解释,检索命中相关文档,Agent 正确返回 42。

五、小结

通过 Ollama、FAISS、LangChain 三个开源工具的串联,即可构建"模型加载 → 向量检索 → 智能体编排"的完整原生AI链路。三者均开源免费,可快速用于本地实验与二次开发,建议按自身场景组合取舍。


海量精选技术文档和实战案例持续更新,敬请关注【风骏时光少年】

相关推荐
杨航 AI3 分钟前
JEV的用法
java·前端·数据库
Amos_Web3 分钟前
Rspack 源码解析(三十五):rspack_error 如何用 miette 渲染带源码定位的错误链
前端
修炼的dance9 分钟前
OCR预处理测了108组,纠斜去噪有用,坑在顺序和力度
前端
不可能片场18 分钟前
AI视频成片 帧间差分把拼接缝照出来
前端·electron
写的都是BUG18 分钟前
APK 里的钥匙,一直就放在门口:聊聊加固真正该做什么
前端·算法
dpharness20 分钟前
我踩过的四个记忆坑,从预算到换机
前端·后端
用户77833661321128 分钟前
SerpBase驱动:用原生JS实现搜索意图分流浮层
前端
阿明的小蝴蝶29 分钟前
设备出厂横竖屏修改 & 默认手势导航修改(按键导航)
前端
SameX31 分钟前
ArkTS 做应用内"快捷胶囊" —— 续航日记踩过的两个鸿蒙声明式 UI workaround
前端
用户114818678948432 分钟前
水印的实现方式逻辑
前端·python