熱門大型語言模型(LLM)應用開發框架

我們來深入探索這些強大的大型語言模型(LLM)應用開發框架,并且我會嘗試用文本形式描述一些核心的流程圖,幫助您更好地理解它們的工作機制。由于我無法直接生成圖片,我會用文字清晰地描述流程圖的各個步驟和連接。


LangChain 🦜🔗:LLM 應用的全能瑞士軍刀與編排大師

LangChain 是一個功能極其豐富的開源框架,旨在簡化和標準化 LLM 應用的開發。它通過模塊化的組件和“鏈”(Chains)的概念,讓開發者能夠像搭積木一樣構建從簡單到復雜的各類 LLM 應用,尤其在 RAG (檢索增強生成) 和自主代理 (Agents) 方面表現突出。

  • 核心理念:將 LLM 應用的各個環節(如模型調用、數據連接、任務編排、記憶管理)抽象為可復用的組件,并通過“鏈”將它們串聯起來,實現靈活且強大的工作流。

  • 關鍵特性詳解

    • LLM 封裝 (LLM Wrappers):提供統一接口調用不同的 LLM,如 OpenAI 的 gpt-4gpt-3.5-turbo,Hugging Face Hub 上的開源模型(如 Llama, Mistral),以及 Azure OpenAI Service 等。這使得底層模型的切換成本大大降低。
    • 鏈 (Chains):這是 LangChain 的靈魂。鏈定義了一系列操作的執行順序。
      • LLMChain:最基礎的鏈,包含一個提示模板 (PromptTemplate)、一個 LLM 和一個可選的輸出解析器 (OutputParser)。
      • 順序鏈 (Sequential Chains):如 SimpleSequentialChain(單輸入單輸出)和 SequentialChain(多輸入多輸出),可以將多個鏈或原子操作按順序連接。
      • 路由鏈 (Router Chains):能根據輸入動態地選擇執行哪一個子鏈,實現更復雜的邏輯分支。
      • 文檔處理鏈 (Chains for Document Interaction):如 load_summarize_chain (加載文檔并總結),load_qa_chain (加載文檔并進行問答)。
    • 索引與檢索器 (Indexes and Retrievers) - RAG 的核心
      • 文檔加載器 (Document Loaders):支持超過80種數據源,從 PDF、TXT、CSV、JSON、HTML 到 Notion、Google Drive、Slack、Databases (SQL, NoSQL) 等。
      • 文本分割器 (Text Splitters):將長文檔分割成適合 LLM 處理的語義相關的小塊 (chunks)。例如 RecursiveCharacterTextSplitter (遞歸按字符分割,嘗試保留段落完整性)、TokenTextSplitter (按 Token 數量分割)。
      • 向量化 (Embeddings):將文本塊轉換為高維向量,捕捉其語義信息。支持 OpenAI, Hugging Face, Cohere 等多種嵌入模型。
      • 向量存儲 (Vector Stores):將文本塊及其向量存儲起來,以便進行高效的相似性搜索。集成了 FAISS, Chroma, Pinecone, Weaviate, Milvus, Elasticsearch 等25種以上的向量數據庫/搜索引擎。
      • 檢索器 (Retrievers):根據用戶查詢(也轉換為向量)從向量存儲中檢索最相關的文本塊。除了基本的相似性搜索,還支持 MMR (Maximal Marginal Relevance) 減少結果冗余,以及元數據過濾等。
    • 代理 (Agents):賦予 LLM “思考-行動”的能力。Agent 內部有一個 LLM 作為決策核心,可以訪問一系列工具 (Tools) 來完成用戶指定的任務。
      • 工具 (Tools):可以是簡單的函數(如計算器、日期獲取),也可以是調用外部 API(如 Google 搜索、天氣查詢、維基百科),甚至可以是其他的鏈。
      • Agent 執行器 (AgentExecutor):負責運行 Agent 的主循環,包括讓 LLM 思考、選擇工具、執行工具、觀察結果,并循環此過程直到任務完成。
      • Agent 類型:如 zero-shot-react-description (基于 ReAct 范式,根據工具描述讓 LLM 自行決定使用哪個工具),self-ask-with-search (模擬人類先自問問題再通過搜索找答案的過程)。
    • 記憶 (Memory):為鏈和 Agent 提供短期或長期的記憶能力,使對話能夠保持上下文連貫。
      • 類型ConversationBufferMemory (存儲完整對話歷史),ConversationBufferWindowMemory (僅存儲最近 K 輪對話),ConversationSummaryMemory (對歷史對話進行摘要),VectorStoreRetrieverMemory (將對話歷史存入向量數據庫,根據當前輸入檢索相關歷史片段)。
    • 回調 (Callbacks):允許開發者在鏈或 Agent 執行的各個階段(如開始、結束、出錯、接收到 LLM 輸出等)注入自定義邏輯,用于日志記錄、監控、流式輸出、調試等。
  • RAG 流程示意圖 (文本描述)

查詢與生成
數據處理與存儲
檢索相似向量
用戶查詢
嵌入模型 Embedding Model
查詢向量
相關文本塊 Relevant Chunks
LLM Chain 帶提示模板
生成的答案
原始數據 文檔/網頁等
文檔加載器 Document Loader
文本分割器 Text Splitter
文本塊Chunks
嵌入模型 Embedding Model
向量 Vectors
向量數據庫 Vector Store
  • Agent 執行流程示意圖 (文本描述)

    1. 思考 (Thought)
    2. 決定行動 (Action)
    3. 工具輸出 (Observation)
    4. 再次思考/判斷是否完成
    如果任務未完成
    如果任務完成
    用戶輸入/目標
    Agent
    Agent LLM作為大腦
    選擇工具及輸入
    工具執行 Search API
    最終答案/行動結果
  • 應用場景

    • 高級 RAG 系統:構建能理解復雜文檔、回答專業問題的客服機器人或研究助手。
    • 個性化聊天機器人:利用記憶模塊記住用戶偏好,提供更貼心的對話體驗。
    • 自主任務執行代理:如自動化預訂、信息搜集與整理、代碼生成與解釋。
    • 數據分析與報告生成:連接數據庫或 API,自動提取數據、進行分析并生成結構化報告。

Haystack 🌻 (由 deepset AI 開發):生產級語義搜索與問答專家

Haystack 是一個專注于構建端到端、可擴展、生產就緒的語義搜索和問答系統的開源框架。它強調信息檢索流程的健壯性和評估能力。

  • 核心理念:通過模塊化的“管道”(Pipelines)將文檔處理、嵌入、檢索、閱讀/生成等步驟清晰地組織起來,構建高性能的神經搜索系統,并提供評估工具以確保系統質量。

  • 關鍵特性詳解

    • 管道 (Pipelines):Haystack 的核心工作流機制。開發者通過 YAML 文件或 Python 代碼定義管道,將不同的組件(節點)連接起來。
    • 文檔存儲 (DocumentStores):用于存儲文本數據及其元數據和向量表示。支持多種后端,如 Elasticsearch, OpenSearch, FAISS, Milvus, Pinecone, Weaviate 等。Haystack 提供了統一的接口來管理這些存儲。
    • 文件轉換器 (FileConverters):將不同格式的文件(PDF, DOCX, TXT, Markdown 等)轉換為 Haystack Document 對象。
    • 預處理器 (Preprocessors):對 Document 對象進行清洗(如移除多余空格、特殊字符)和分割(按句子、單詞或固定長度分割成更小的文檔單元)。
    • 嵌入器 (Embedders) / 檢索器 (Retrievers)
      • 稠密檢索器 (Dense Retrievers):如 EmbeddingRetriever,使用句子Transformer等模型將文檔和查詢轉換為向量,然后進行相似度搜索。
      • 稀疏檢索器 (Sparse Retrievers):如 BM25Retriever (基于 Elasticsearch 或 OpenSearch),使用傳統的詞頻統計方法(如 BM25)進行檢索。
      • 混合檢索:可以結合稠密和稀疏檢索器的結果。
    • 閱讀器 (Readers):通常是基于 Transformer 的抽取式問答模型(如 RoBERTa, MiniLM 的微調版本),它們從檢索器返回的文檔中直接抽取答案片段。
    • 生成器 (Generators):使用 LLM(如 GPT, T5)基于檢索到的上下文生成更流暢、更全面的答案。PromptNode 是 Haystack 中用于與 LLM 交互的核心組件,可以配置不同的提示模板和模型。
    • 排序器 (Rankers):對檢索器或閱讀器返回的結果進行重新排序,以提升最終答案的相關性。
    • 評估 (Evaluation):Haystack 提供了專門的評估流程,可以評估檢索階段的指標(如 Recall@K, MAP)和問答階段的指標(如 Exact Match, F1-score, SAS - Semantic Answer Similarity)。
    • REST API 與 UI:可以方便地將構建的 Haystack 管道通過 REST API 暴露出來,并且提供了一個簡單的 Streamlit UI 用于演示和測試。
  • Haystack 索引管道示意圖 (文本描述)

    文檔處理與索引
    原始文檔 PDF, TXT
    文件轉換器 FileConverter
    Haystack 文檔對象
    預處理器 Preprocessor
    清洗和分割后的文檔單元
    嵌入模型/編碼器 EmbeddingRetriever/Encoder
    文檔向量 + 元數據
    文檔存儲 DocumentStore
  • Haystack 查詢管道示意圖 (文本描述)

    查詢與回答
    獲取候選文檔
    Reader
    Generator
    用戶查詢
    檢索器 Retriever
    候選文檔列表
    Reader 或 Generator?
    閱讀器 Reader
    抽取式答案
    生成器 Generator - PromptNode
    生成式答案
    文檔存儲 DocumentStore
  • 應用場景

    • 企業級語義搜索引擎:為公司內部知識庫、產品文檔、法律合同等提供智能搜索。
    • 智能客服問答系統:準確理解用戶問題并從 FAQ 或知識庫中找到或生成答案。
    • 文檔分析與洞察提取:從大量報告或文獻中快速定位關鍵信息。
    • 金融、法律等行業的合規性檢查與信息檢索

AutoGen 🤖💬 (由 Microsoft 開發):賦能多智能體協作與自動化

AutoGen 是一個用于構建和管理多個能夠相互對話、協作完成任務的 LLM 代理的框架。它強調通過對話來實現復雜工作流的自動化,并支持人類在環的監督與干預。

  • 核心理念:將復雜任務分解給多個具有不同角色和能力的 AI 代理,這些代理通過對話進行協作,共同達成目標。人類可以作為參與者或監督者加入對話。

  • 關鍵特性詳解

    • 可對話代理 (Conversable Agents):AutoGen 的核心。每個代理都可以配置其 LLM(或不使用)、系統消息(定義其身份和行為準則)、工具(函數調用)。
      • UserProxyAgent:代表人類用戶,可以發起對話,也可以配置為執行代碼(如 Python 腳本,通過 code_execution_config 設置)或調用函數。
      • AssistantAgent:由 LLM 驅動的助手代理,根據對話歷史和指令生成回復或決定調用哪個函數。
      • GroupChatManager:用于協調多個代理在群聊中的發言順序和流程。
    • 多代理對話:代理之間通過發送和接收消息進行通信。開發者可以設計不同的對話模式:
      • 兩代理對話:例如,一個 UserProxyAgent 和一個 AssistantAgent 相互對話。
      • 群聊 (Group Chat):多個代理(包括 UserProxyAgent)在一個群組內討論,由 GroupChatManager 控制流程。
      • ** ?????對話 (Sequential Chats)**:任務在一個代理序列中傳遞。
    • 函數調用 (Function Calling) / 工具使用:代理可以調用預定義的 Python 函數。這與 OpenAI 的函數調用功能緊密集成,使得 LLM 可以請求執行特定的代碼邏輯,從而與外部環境交互或執行復雜計算。
    • 代碼執行UserProxyAgent 可以配置為在本地或 Docker 容器中執行 LLM 生成的代碼塊(如 Python, Shell 腳本),并將結果返回給對話。這對于編程、數據分析等任務非常強大。
    • 人在回路 (Human-in-the-loop):人類用戶可以隨時介入對話,提供反饋、修正方向、批準代碼執行或手動執行某些步驟。這對于確保任務的正確性和安全性至關重要。
    • 可定制性:可以自定義代理的行為,例如它們如何回復、何時請求人類輸入、何時終止對話等。
  • AutoGen 基礎雙代理對話流程示意圖 (文本描述)

    發起任務/問題
    傳遞任務
    1. 思考/生成回復/決定使用工具
    工具執行結果
    接收結果后 繼續生成/總結
    人類用戶
    UserProxyAgent
    AssistantAgent LLM驅動
    需要工具/代碼
    UserProxyAgent 執行工具/代碼
    AssistantAgent 生成回復
    UserProxyAgent 呈現給人類 繼續
  • AutoGen 群聊流程示意圖 (簡化) (文本描述)

    選擇下一個發言者
    發言內容/結果
    選擇下一個發言者
    發言內容/結果
    循環直到滿足條件
    發言內容/結果
    任務完成
    人類用戶/發起者
    GroupChatManager
    代理A 發言 執行
    代理B 根據A的發言回應 執行
    代理N
    最終結果呈現給用戶
  • 應用場景

    • 自動化復雜任務:如“讓一個代理寫代碼,另一個測試,第三個寫文檔”,或者“一個代理負責搜集最新新聞,另一個總結,第三個寫評論”。
    • 代碼生成、調試與優化:代理可以協作編寫、運行和改進代碼。
    • 研究與內容創作:多個代理分工合作,進行文獻回顧、數據分析、報告撰寫。
    • 模擬與決策支持:模擬不同角色(如CEO, CFO, CTO)在特定場景下的決策過程。
    • 交互式學習與輔導:代理扮演老師、學生、提問者等角色。

Semantic Kernel 🧠💡 (由 Microsoft 開發):輕量級 AI 服務編排 SDK

Semantic Kernel (SK) 是一個輕量級的開源 SDK,旨在將 LLM 和其他 AI 服務(如嵌入模型)的能力無縫集成到傳統的應用程序中。它提供了一種將自然語言處理能力與現有代碼庫(C#, Python, Java)結合的優雅方式。

  • 核心理念:通過一個“內核”(Kernel)對象來編排“技能”(Skills),其中技能可以包含“語義函數”(由自然語言提示驅動)和“原生函數”(用傳統代碼編寫),從而實現 AI 與業務邏輯的深度融合。

  • 關鍵特性詳解

    • 內核 (Kernel):SK 的中心協調器。它加載技能、管理記憶、連接AI服務,并執行用戶請求。
    • 技能 (Skills):組織功能的單元,可以包含一個或多個函數。技能可以來自文件系統、代碼定義或插件。
      • 語義函數 (Semantic Functions):核心是帶有模板的提示詞(Prompt Templates)。這些模板定義了如何與 LLM 交互以完成特定任務(如總結、翻譯、情感分析、代碼生成等)。SK 的提示模板語言支持變量、內置函數和復雜的邏輯。函數定義通常包含 skprompt.txt (提示模板) 和 config.json (配置,如LLM參數)。
      • 原生函數 (Native Functions):用 C#, Python 或 Java 編寫的普通代碼函數,可以通過裝飾器(如 Python 中的 @sk_function)暴露給 Kernel。這些函數可以訪問本地資源、調用外部 API、執行復雜計算等,彌補了 LLM 在某些方面的不足。
    • 記憶 (Memories):為 LLM 提供上下文信息和長期知識。SK 的記憶連接器支持多種向量數據庫(如 Azure Cognitive Search, Qdrant, Chroma, Weaviate, Pinecone),用于存儲和檢索文本嵌入,實現 RAG 功能。
    • 連接器 (Connectors):用于 Kernel 與外部服務(主要是 LLM 和記憶存儲)的連接。支持 OpenAI, Azure OpenAI, Hugging Face 等 LLM 服務。
    • 規劃器 (Planners):SK 的一個高級特性,能夠根據用戶的高層目標和 Kernel 中可用的技能,自動生成一個多步驟的執行計劃(Plan)。規劃器會分析用戶意圖,并嘗試找到一系列技能調用的組合來達成該意圖。
      • 例如,用戶請求“給我查一下明天北京的天氣,然后根據天氣寫一首關于春天的短詩”,Planner 可能會生成一個計劃:1.調用一個WeatherSkillGetTomorrowWeather函數獲取天氣;2.調用一個WritingSkillWritePoem函數,并將天氣信息作為輸入。
    • 跨語言支持:目前主要支持 C#, Python 和 Java,并致力于提供一致的開發體驗。
  • Semantic Kernel 技能調用流程示意圖 (文本描述)

    調用 MySkill.Summarize
    語義函數
    原生函數
    用戶請求 例如:總結這段文字
    內核 Kernel
    技能類型?
    語義函數 Prompt Template + 輸入
    LLM 連接器
    LLM 服務 OpenAI/Azure
    LLM 響應
    原生函數 C#/Python/Java 代碼
    代碼執行結果
    格式化輸出給用戶
  • Semantic Kernel 規劃器流程示意圖 (文本描述)

    分析目標, 查找可用技能
    順序執行計劃
    結果
    ...
    用戶目標 (e.g., 查詢股價并發送郵件)
    內核 (Kernel)
    規劃器 (Planner)
    (技能注冊表)
    生成計劃 (Plan: 步驟1, 步驟2...)
    步驟1: 執行技能A
    步驟2: 執行技能B (可能使用步驟1的結果)
    最終結果
  • 應用場景

    • 為現有企業應用賦能:在 CRM、ERP 或 Office 插件中嵌入智能助手 (Copilot) 功能。
    • 構建智能業務流程自動化:將需要人類判斷和自然語言理解的環節交由 LLM 處理,其他環節由傳統代碼執行。
    • 創建可重用的 AI 插件 (Skills):將特定領域的 AI 能力封裝成技能,供不同應用調用。
    • 將自然語言作為應用程序的新接口:允許用戶通過自然語言與復雜系統交互。

LlamaIndex 🦙📄:LLM 的專業級數據框架與 RAG 利器

LlamaIndex 是一個專注于將 LLM 與外部數據源連接的數據框架,是構建高效、強大的 RAG 應用的核心工具。它提供了從數據攝取、索引構建到查詢執行的完整解決方案。

  • 核心理念:為 LLM 提供一個簡單、靈活且優化的方式來訪問和利用私有或領域特定的數據,從而增強 LLM 的知識范圍和回答相關性。

  • 關鍵特性詳解

    • 數據連接器/讀取器 (Data Connectors / Readers):極其強大的數據攝取能力,支持超過150種數據源。
      • 文件類:PDF, DOCX, TXT, Markdown, CSV, Excel, PowerPoint, Images (OCR), Audio (transcription)。
      • SaaS 應用:Notion, Slack, Salesforce, Google Drive, OneDrive, Asana, Trello, Jira, GitHub, Discord。
      • 數據庫:PostgreSQL, MySQL, MongoDB, Snowflake, SQL Server, Elasticsearch。
      • APIs:可以自定義連接器調用任意 API。
    • 節點 (Nodes):文檔被加載和解析后,會轉換成 Node 對象。一個 Node 代表一個文本塊 (chunk),并包含文本內容、元數據 (metadata)、以及與其他節點的關系 (relationships)。
    • 索引結構 (Index Structures):LlamaIndex 提供了多種索引類型來組織 Node,以適應不同的查詢需求。
      • VectorStoreIndex:最常用的索引,將 Node 的文本嵌入存儲在向量數據庫中,通過語義相似度進行檢索。與 FAISS, Pinecone, Weaviate, Chroma, Qdrant 等深度集成。
      • ListIndex:按順序存儲 Node,適合順序問答或對所有內容進行總結。
      • TreeIndex:將 Node 組織成層級樹狀結構(通常是摘要樹),父節點是子節點的摘要。查詢時可以自頂向下或自底向上遍歷。
      • KeywordTableIndex:從 Node 中提取關鍵詞,構建關鍵詞到 Node 的映射,支持基于關鍵詞的檢索。
      • KnowledgeGraphIndex:從文本中提取實體和關系,構建知識圖譜索引,支持結構化查詢和推理。
      • 組合索引 (Composable Indexes):可以將不同類型的索引組合起來,例如先用關鍵詞索引粗篩,再用向量索引精排。
    • 檢索器 (Retrievers):從索引中檢索與查詢相關的 Node。LlamaIndex 提供了多種配置選項,如 similarity_top_k (返回最相似的k個節點)、元數據過濾等。
    • 節點后處理器 (Node Postprocessors):在檢索到 Node 之后,但在傳遞給 LLM 合成答案之前,對 Node列表進行進一步處理,如重新排序、過濾低分節點、關鍵詞高亮等。
    • 響應合成器 (Response Synthesizers):獲取檢索到的 Node 列表和原始查詢,然后使用 LLM 來生成最終的自然語言答案。提供了多種合成策略:
      • refine:逐個處理檢索到的文本塊,迭代地優化答案。
      • compact:將盡可能多的文本塊塞進 LLM 的上下文窗口進行一次性回答。
      • tree_summarize:層級式總結,先總結小塊,再總結小塊的總結,適合大量文本。
    • 查詢引擎 (Query Engines):封裝了從查詢到生成答案的整個流程(檢索 -> 后處理 -> 合成)。
    • 聊天引擎 (Chat Engines):在查詢引擎的基礎上增加了對話記憶,支持多輪 RAG 對話。
    • 代理 (Agents):LlamaIndex 也提供了 Agent 框架,其 Agent 可以使用 LlamaIndex 的查詢引擎作為工具 (QueryEngineTool) 來訪問和推理數據。
  • LlamaIndex 數據索引流程示意圖 (文本描述)

    附加元數據
    數據源 (PDF, API, DB等)
    加載器 Reader/Connector
    文檔對象 (Documents)
    解析器/文本分割器 NodeParser
    節點 (Nodes) / 文本塊
    帶元數據的節點
    嵌入模型 Embedding Model
    節點向量
    索引結構 Index e.g., VectorStoreIndex
  • LlamaIndex 查詢流程示意圖 (文本描述)

    從索引查詢
    用戶查詢
    查詢引擎 (QueryEngine)
    檢索器 (Retriever)
    (索引結構 Index)
    相關節點 (Relevant Nodes)
    可選: 節點后處理器 NodePostprocessor
    精選/排序后的節點
    響應合成器 ResponseSynthesizer LLM驅動
    生成的答案
  • 應用場景

    • 構建任何基于私有數據的問答系統:無論是公司內部文檔、個人筆記、研究論文庫還是特定領域的知識庫。
    • 多模態 RAG:結合文本、圖像、音頻數據進行問答。
    • 結構化數據分析與問答:將結構化數據(如 SQL 數據庫)與非結構化數據結合起來,通過自然語言進行查詢和分析。
    • 知識圖譜構建與問答:從文本中自動構建知識圖譜,并基于圖譜進行復雜推理。
    • Agentic RAG:創建能夠主動查詢、分析和綜合來自不同數據源信息的智能代理。

總結與選擇考量

這些框架各有側重,但目標都是為了讓開發者更高效地利用 LLM 的強大能力。

  • 如果您需要一個功能全面、社區龐大、擁有大量預置組件和靈活編排能力的框架,并且希望快速原型化和構建復雜的Agentic應用或RAG流程,LangChain 通常是首選。
  • 如果您專注于構建生產級別的、高性能的語義搜索或問答系統,并且非常重視系統的評估、可擴展性和與傳統信息檢索技術的結合,Haystack 會是一個非常專業的選擇。
  • 如果您想探索多智能體協作、任務自動化和人類參與的復雜對話系統,特別是需要代理之間進行精細的交互和代碼執行,AutoGen 提供了獨特的范式。
  • 如果您希望以一種**更接近傳統軟件工程的方式將AI能力(尤其是LLM)輕量級地集成到現有應用程序(特別是C#, Python, Java技術棧)**中,并強調技能的復用和AI與業務邏輯的融合,Semantic Kernel 是一個優秀的選擇。
  • 如果您項目的核心在于處理和連接多樣化的外部數據源以增強LLM(即RAG是關鍵),并且需要對數據的攝取、索引、查詢進行深度優化和精細控制,LlamaIndex 在數據處理方面提供了無與倫比的深度和廣度。

在實際項目中,這些框架并非完全互斥,有時甚至可以結合使用它們各自的優勢組件。例如,使用 LlamaIndex 構建強大的數據索引和檢索器,然后將其作為 LangChain Agent 的一個工具。理解它們的核心設計理念和優勢,將幫助您為您的 LLM 應用選擇最合適的架構和工具。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/82918.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/82918.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/82918.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習數據降維方法

1.數據類型 2.如何選擇降維方法進行數據降維 3.線性降維:主成分分析(PCA)、線性判別分析(LDA) 4.非線性降維 5.基于特征選擇的降維 6.基于神經網絡的降維 數據降維是將高維數據轉換為低維表示的過程,旨在保…

太陽系運行模擬程序-html動畫

太陽系運行模擬程序-html動畫 by AI: <!DOCTYPE html> <html lang"zh"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>交互式太陽系…

2025年全國青少年信息素養大賽 scratch圖形化編程挑戰賽 小低組初賽 內部集訓模擬題解析

2025年信息素養大賽初賽scratch模擬題解析 博主推薦 所有考級比賽學習相關資料合集【推薦收藏】 scratch資料 Scratch3.0系列視頻課程資料零基礎學習scratch3.0【入門教學 免費】零基礎學習scratch3.0【視頻教程 114節 免費】 歷屆藍橋杯scratch國賽真題解析歷屆藍橋杯scr…

grid網格布局

使用flex布局的痛點 如果使用justify-content: space-between;讓子元素兩端對齊&#xff0c;自動分配中間間距&#xff0c;假設一行4個&#xff0c;如果每一行都是4的倍數那沒任何問題&#xff0c;但如果最后一行是2、3個的時候就會出現下面的狀況&#xff1a; /* flex布局 兩…

通義靈碼2.5——基于MCP實現我的12306火車票智能查詢小助手

本文因排版顯示問題&#xff0c;為保證閱讀體驗&#xff0c;請大家訪問&#xff1a; 通義靈碼2.5——基于MCP打造我的12306火車票智能查詢小助手-CSDN博客 前沿技術應用全景圖 本項目作為通義靈碼2.5的標桿實踐案例&#xff0c;展現了AI輔助開發在復雜業務系統中的革命性突破…

Unity Button 交互動畫

在UGUI的Button組件中&#xff0c;有一個過渡動畫表現的功能。可以對按鈕的不同交互狀態添加交互反饋動畫&#xff0c;來提高玩家的交互體驗。 交互狀態 名稱 描述 Normal 正常情況 Highlighted 高亮顯示&#xff0c;例如鼠標觸碰到按鈕點擊范圍 Pressed 按鈕被按下的時…

釘釘熱點實時推送助理-思路篇

以下是針對熱點實時推送助理的功能描述&#xff0c;結合機器學習技術棧與用戶場景的通俗化解釋&#xff1a; 快速體驗的話直接用釘釘掃描下方二維碼體驗 1. 核心功能 &#xff08;1&#xff09;熱點抓取引擎 類比&#xff1a;像蜘蛛爬取全網信息&#xff08;網絡爬蟲信息抽取…

remote: error: hook declined to update refs/heads.....

gitee拉取分支&#xff0c;修改上傳出現的問題&#xff0c;折騰了好久&#xff0c;淺淺記錄. 1. 首次克隆倉庫 # 克隆倉庫&#xff08;使用 HTTPS 或 SSH&#xff09; git clone ------------ cd xxx-project2. 配置正確的用戶信息&#xff08;關鍵步驟&#xff01;&#xff…

使用Vue + Element Plus實現可多行編輯的分頁表格

需求背景&#xff1a; 在現代前端開發中&#xff0c;表格作為數據展示和交互的重要組件&#xff0c;在各類管理系統、數據平臺中有著廣泛的應用。隨著用戶對數據操作便捷性要求的不斷提高&#xff0c;具備靈活編輯功能的表格成為了開發中的常見需求。特別是在需求處理大…

奧威BI+AI——高效智能數據分析工具,引領數據分析新時代

隨著數據量的激增&#xff0c;企業對高效、智能的數據分析工具——奧威BIAI的需求日益迫切。奧威BIAI&#xff0c;作為一款顛覆性的數據分析工具&#xff0c;憑借其獨特功能&#xff0c;正在引領數據分析領域的新紀元。 一、?零報表環境下的極致體驗? 奧威BIAI突破傳統報表限…

【機器學習基礎】機器學習入門核心算法:K均值(K-Means)

機器學習入門核心算法&#xff1a;K均值&#xff08;K-Means&#xff09; 1. 算法邏輯2. 算法原理與數學推導2.1 目標函數2.2 數學推導2.3 時間復雜度 3. 模型評估內部評估指標外部評估指標&#xff08;需真實標簽&#xff09; 4. 應用案例4.1 客戶細分4.2 圖像壓縮4.3 文檔聚類…

springboot多模塊父pom打包正常,單模塊報錯

背景&#xff1a;因為項目開發中經常發測試環境&#xff0c;發現使用阿里的插件能一鍵上傳&#xff0c;不用手動上傳比較方便。但是多模塊有多個啟動jar的時候&#xff0c;全局打包太慢&#xff0c;單獨打發現報錯。這里貼一下我使用這個插件的方式&#xff1a; 附帶一個我感覺…

通義靈碼2.5——基于MCP打造我的12306火車票智能查詢小助手

前沿技術應用全景圖 本項目作為通義靈碼2.5的標桿實踐案例&#xff0c;展現了AI輔助開發在復雜業務系統中的革命性突破。通過深度集成12306 MCP服務體系&#xff0c;我們構建了一個融合智能決策、環境感知和自主優化的新一代火車票查詢系統。 #mermaid-svg-4D7QqwJjsQRdKVP7 {…

進程間通信(共享內存)

目錄 前置&#xff1a; 一 原理 二 API 1. shmgetr 2. shmctl 3. 指令操作 2. 刪除 3. 掛接 4. 斷開掛接 三 demo代碼 四 共享內存的特征 前置&#xff1a; 1.前面說的不管是匿名管道還是命名管道都是基于文件的思想構建的一套進程間通信的方案&#xff0c;那有沒有…

詳解GPU

詳解GPU GPU&#xff08;圖形處理器&#xff09;就像電腦里的 “圖形小能手”&#xff0c;原本主要用來畫畫&#xff08;渲染圖形&#xff09;&#xff0c;現在還能幫忙干很多雜活&#xff08;并行計算&#xff09; 一、先認識 GPU 的 “鑰匙”&#xff1a;驅動和開發工具 裝驅…

體育遇上AI:解讀新一代智能閱讀產品

在信息過載的今天&#xff0c;體育迷們時常面對這樣的困擾&#xff1a;如何從海量賽事新聞、數據分析和深度評論中高效獲取自己真正關心的內容&#xff1f;體育AI閱讀產品正成為解決這一痛點的關鍵鑰匙——它融合人工智能技術與體育內容生態&#xff0c;為球迷提供智能化、個性…

外網訪問可視化工具 Grafana (Linux版本)

Grafana 是一款強大的可視化監控指標的展示工具&#xff0c;可以將不同的數據源數據以圖形化的方式展示&#xff0c;不僅通用而且非常美觀。它支持多種數據源&#xff0c;如 prometheus 等&#xff0c;也可以通過插件和 API 進行擴展以滿足各種需求。 本文將詳細介紹如何在本地…

Java開發經驗——阿里巴巴編碼規范實踐解析4

摘要 本文主要介紹了阿里巴巴編碼規范中關于日志處理的相關實踐解析。強調了使用日志框架&#xff08;如 SLF4J、JCL&#xff09;而非直接使用日志系統&#xff08;如 Log4j、Logback&#xff09;的 API 的重要性&#xff0c;包括解耦日志實現、統一日志調用方式等好處。同時&…

各個鏈接集合

golang學習&#xff5e;&#xff5e;_從數組中取一個相同大小的slice有成本嗎?-CSDN博客 框架 golang學習&#xff5e;&#xff5e;_從數組中取一個相同大小的slice有成本嗎?-CSDN博客 golang k8s學習_容器化部署和傳統部署區別-CSDN博客 K8S rabbitmq_rabbitmq 廣播-CSD…

Cesium 展示——獲取鼠標移動、點擊位置的幾種方法

文章目錄 需求分析:這里我們用到了幾種常見的鼠標事件1. 獲取鼠標移動的位置2. 獲取鼠標點擊的位置3. 添加面4. 示例代碼需求 獲取指定斷面的 label 分析:這里我們用到了幾種常見的鼠標事件 1. 獲取鼠標移動的位置 viewer.screenSpaceEventHandler.setInputAction((moveme…