AI在线 AI在线

2025 年 AI 工具全栈开发引擎:从 PDF 到语音仪表板

从 PDFs 到视觉模型,从零样本智能体到语音交互仪表板,我将 2025 年的顶级 AI 工具融合成一个个人全栈开发引擎,彻底改变了我的开发方式。 一切的起点:技术栈我曾被各种工具淹没:• OCR 用一个库• 语音处理用另一个• 视觉模型再来一个• 嵌入、RAG、仪表板,每样都有单独的工具于是,我做了每个不堪重负的开发者最终会做的事:统一它们。 这就是魔法的开始。

从 PDFs 到视觉模型,从零样本智能体到语音交互仪表板,我将 2025 年的顶级 AI 工具融合成一个个人全栈开发引擎,彻底改变了我的开发方式。

1. 一切的起点:技术栈

我曾被各种工具淹没:

  • • OCR 用一个库
  • • 语音处理用另一个
  • • 视觉模型再来一个
  • • 嵌入、RAG、仪表板,每样都有单独的工具

于是,我做了每个不堪重负的开发者最终会做的事:统一它们

这就是魔法的开始。

我的技术栈变成了:

  • • 模型:openai、together、transformers
  • • 文档输入/输出:PyMuPDF、docx、pytesseract
  • • 嵌入:nomic-embed、sentence-transformers
  • • 存储:weaviate、chroma、qdrant
  • • 用户界面与音频:gradio、streamlit、whisper、elevenlabs

现在,我想构建的任何东西——几小时内就能完成原型。

2. 文档摄取引擎(PDF、图像、Word)

我构建的第一个东西?一个统一的文档摄取引擎

复制
from PyPDF2 import PdfReader
import pytesseract
from PIL import Image
import docx

defextract_text(file_path):
    if file_path.endswith(".pdf"):
        pdf = PdfReader(file_path)
        return"\n".join(page.extract_text() for page in pdf.pages)
    
    elif file_path.endswith(".docx"):
        doc = docx.Document(file_path)
        return"\n".join(p.text for p in doc.paragraphs)
    
    elif file_path.endswith((".jpg", ".png")):
        img = Image.open(file_path)
        return pytesseract.image_to_string(img)
    
    else:
        raise Exception("不支持的文件格式")

这让我的机器人能够从各种文档中提取知识。

3. 使用 nomic-embed-text-v1.5 嵌入一切

目前最好的开源嵌入模型?nomic-embed-text-v1.5

复制
from transformers import AutoTokenizer, AutoModel
import torch

class Embedder:
    def __init__(self):
        self.model = AutoModel.from_pretrained("nomic-ai/nomic-embed-text-v1.5")
        self.tokenizer = AutoTokenizer.from_pretrained("nomic-ai/nomic-embed-text-v1.5")

    def get_embedding(self, text):
        tokens = self.tokenizer(text, return_tensors="pt", truncatinotallow=True, padding=True)
        with torch.no_grad():
            outputs = self.model(**tokens)
        return outputs.last_hidden_state[:, 0, :].squeeze().numpy()

这让我实现了对 PDF、聊天记录、图像(转换为文本)的语义搜索

4. 使用 ChromaDB 构建知识库

我将所有内容存储在 Chroma 中——快速、本地、简单的向量存储。

复制
import chromadb

client = chromadb.Client()
collection = client.get_or_create_collection("my_docs")

def add_doc_to_store(doc_text, doc_id):
    vector = embedder.get_embedding(doc_text)
    collection.add(documents=[doc_text], ids=[doc_id], embeddings=[vector])

搜索只需一次调用:

复制
def semantic_search(query):
    vector = embedder.get_embedding(query)
    return collection.query(query_embeddings=[vector], n_results=3)

现在我拥有了即刻可用的 RAG(检索增强生成) 存储。

5. 使用 OpenAI GPT-4o 实现多模态视觉 + 文本搜索

如果 PDF 包含图表或截图?我用 GPT-4o 的视觉能力。

复制
import openai
import base64

defimage_to_base64(path):
    withopen(path, "rb") as f:
        return base64.b64encode(f.read()).decode()

defask_image_question(image_path, question):
    image_b64 = image_to_base64(image_path)

    messages = [
        {"role": "user", "content": [
            {"type": "text", "text": question},
            {"type": "image_url", "image_url": {"url": f"data:image/png;base64,{image_b64}"}}
        ]}
    ]

    response = openai.ChatCompletion.create(
        model="gpt-4o",
        messages=messages
    )
    return response.choices[0].message.content

它能:

• 总结图表

• 解读截图

• 提取幻灯片中的文本

一个 API,全面的图像 + 语言理解。

6. 使用 Together AI 智能体实现零样本工具使用

然后我玩得更大了。

Together AI 的零样本智能体 API 让我一次调用就能链接多个工具——爬虫、Python、浏览器、代码解释器。

复制
import requests

def call_agent(question):
    res = requests.post(
        "https://api.together.xyz/v1/chat/completions",
        headers={"Authorization": f"Bearer {TOGETHER_API_KEY}"},
        jsnotallow={
            "model": "zero-shot-agent",
            "messages": [{"role": "user", "content": question}]
        }
    )
    return res.json()["choices"][0]["message"]["content"]

我问:

“使用公开数据源绘制巴基斯坦温度趋势图。”

它生成了 Python 代码,获取数据集,运行绘图——全搞定。

7. 使用 Whisper + ElevenLabs 实现语音接口

我想和系统“对话”。

• 输入:Whisper

• 输出:ElevenLabs

复制
import whisper

model = whisper.load_model("base")
def transcribe(audio_path):
    result = model.transcribe(audio_path)
    return result["text"]

然后:

复制
import requests

def speak(text):
    res = requests.post(
        f"https://api.elevenlabs.io/v1/text-to-speech/{VOICE_ID}",
        headers={"xi-api-key": ELEVEN_KEY},
        jsnotallow={"text": text}
    )
    with open("out.mp3", "wb") as f:
        f.write(res.content)

我将两者接入 Gradio 接口。我用语音提问,它用语音回答。

感觉像科幻电影。

8. 用户界面:Gradio 仪表板,感觉像应用

最后一步——让它像个产品。

复制
import gradio as gr

def answer_from_voice(audio):
    transcript = transcribe(audio)
    answer = call_agent(transcript)
    speak(answer)
    return transcript, answer, "out.mp3"

gr.Interface(
    fn=answer_from_voice,
    inputs=gr.Audio(source="microphone", type="filepath"),
    outputs=["textbox", "textbox", gr.Audio()]
).launch()

现在任何人都能用它:

• 语音交互

• 学习知识

• 扩展功能

9. 最终思考:我构建了一个 AI 操作系统

毫不夸张——这个设置成了我的 AI 操作系统

我可以:

• 摄取文档

• 分析 PDF 和图表

• 让它写代码

• 让它用语音回答

• 连接任何东西

全用 Python 实现。

应用与助手的界限消失了。

凭借 GPT-4o、nomic、chroma、Together AI、whisper 等工具,我构建了一个感觉“活”的平台。

不仅仅是智能,而是:

• 实用

• 快速

• 互联

这一切始于一个想法:

如果我不再思考“应用”,而是思考“智能体”呢?

这就是 2025 年的 AI。

相关资讯

开源OCR工具olmOCR:高效实现 PDF 转文本,支持表格与手写识别

olmOCR 是一款开源的光学字符识别(OCR)工具,旨在高效地将 PDF 及其他文档转换为纯文本,同时保留自然的阅读顺序。 这款工具不仅支持普通文本的提取,还能处理表格、数学公式和手写内容,极大地方便了用户对文档的处理需求。 这款工具的核心优势在于其高准确率。
3/3/2025 9:25:00 AM
AI在线

AI 与非结构化数据:简单 RAG 的局限及生产级解决方案全解析

非结构化数据涵盖了电子邮件、PDF 文件、会议记录等多种形式,它们充斥在各个角落,却由于缺乏固定的格式,给传统的数据处理工具带来了巨大的挑战。 而人工智能(AI)的出现,尤其是大型语言模型(LLMs),为解决非结构化数据的难题带来了新的希望。 但在实际应用中,简单的检索增强生成(RAG)方法却存在诸多不足,无法满足复杂的生产级场景需求。
4/18/2025 2:55:00 AM
大模型之路

PDF文件长出「AI大脑」?网友惊呼:这操作太「黑科技」了!

技术宅太疯狂! 在PDF中,也能运行LLM。 从PDF里跑出AI大脑?
5/16/2025 4:35:03 PM
  • 1