小白也能懂的 ML.NET:手把手帶你落地第一個(gè) AI 功能
經(jīng)常有剛?cè)胄械?NET朋友問(wèn)我想做點(diǎn)AI相關(guān)的功能是不是必須先學(xué)Python數(shù)學(xué)不好是不是就入不了門(mén)其實(shí)真不是。對(duì)于絕大多數(shù)業(yè)務(wù)場(chǎng)景的AI需求——比如判斷用戶(hù)會(huì)不會(huì)流失、預(yù)測(cè)產(chǎn)品合不合格、給工單自動(dòng)分類(lèi)我們完全不用切換技術(shù)棧。微軟官方的ML.NET就是專(zhuān)門(mén)給.NET開(kāi)發(fā)者準(zhǔn)備的機(jī)器學(xué)習(xí)框架全程寫(xiě)C#不用裝Python環(huán)境不用折騰一堆依賴(lài)訓(xùn)好的模型就是個(gè)zip文件拷到項(xiàng)目里就能直接用。這篇文章完全面向零基礎(chǔ)小白不用你懂任何算法原理跟著步驟一步步敲代碼半小時(shí)就能跑通你的第一個(gè)AI功能。準(zhǔn)備歷史數(shù)據(jù)(特征標(biāo)簽)搭建訓(xùn)練管道訓(xùn)練生成模型評(píng)估模型準(zhǔn)不準(zhǔn)保存模型文件集成到業(yè)務(wù)系統(tǒng)預(yù)測(cè)新數(shù)據(jù)一、先搞懂兩個(gè)最基礎(chǔ)的問(wèn)題不用上來(lái)就記術(shù)語(yǔ)先把邏輯理清楚后面寫(xiě)代碼才不會(huì)懵。1. 機(jī)器學(xué)習(xí)到底是干嘛的我們平時(shí)寫(xiě)程序是把規(guī)則一條條寫(xiě)死用 if-else 去判斷。但遇到復(fù)雜場(chǎng)景就麻煩了比如判斷用戶(hù)會(huì)不會(huì)流失可能涉及消費(fèi)金額、訪(fǎng)問(wèn)頻率、投訴記錄等十幾個(gè)因素規(guī)則寫(xiě)不完也維護(hù)不動(dòng)。機(jī)器學(xué)習(xí)就是反過(guò)來(lái)你給它一大堆帶結(jié)果的歷史數(shù)據(jù)讓它自己從數(shù)據(jù)里找出規(guī)律生成一個(gè)「模型」。以后來(lái)了新數(shù)據(jù)你把特征丟給模型它就能直接給出預(yù)測(cè)結(jié)果。打個(gè)通俗的比方就像帶新員工你給他一堆過(guò)往案例和標(biāo)準(zhǔn)答案讓他學(xué)他學(xué)會(huì)了就能自己判斷新問(wèn)題。模型就是那個(gè)學(xué)會(huì)了規(guī)律的「老員工」。2. ML.NET 是什么能做什么ML.NET 是微軟官方推出的原生.NET機(jī)器學(xué)習(xí)框架完全開(kāi)源、跨平臺(tái)和 ASP.NET、WPF、WinForm 等所有.NET技術(shù)棧無(wú)縫集成。能落地的常見(jiàn)場(chǎng)景二分類(lèi)判斷是/否用戶(hù)會(huì)不會(huì)流失、產(chǎn)品合不合格、郵件是不是垃圾郵件多分類(lèi)劃分類(lèi)別產(chǎn)品缺陷屬于哪種類(lèi)型、工單該分給哪個(gè)部門(mén)回歸預(yù)測(cè)算具體數(shù)值下個(gè)月銷(xiāo)量多少、設(shè)備還能用多久聚類(lèi)自動(dòng)分組給用戶(hù)分群、識(shí)別異常數(shù)據(jù)不適合的場(chǎng)景AI聊天、AI畫(huà)圖這類(lèi)生成式大模型應(yīng)用不是它的強(qiáng)項(xiàng)。它的定位是做業(yè)務(wù)系統(tǒng)內(nèi)嵌的預(yù)測(cè)分析能力離線(xiàn)、私有化、低成本落地。二、5個(gè)核心概念看完就不會(huì)懵不用死記硬背對(duì)應(yīng)到日常開(kāi)發(fā)的邏輯里一秒就能懂。ML.NET 術(shù)語(yǔ)大白話(huà)解釋開(kāi)發(fā)類(lèi)比MLContext所有操作的總?cè)肟谒泄δ芏紡乃_(kāi)始相當(dāng)于 EF 的 DbContext或者程序的啟動(dòng)入口特征Feature判斷的依據(jù)比如預(yù)測(cè)及格看「學(xué)習(xí)時(shí)長(zhǎng)」「刷題量」方法的入?yún)?biāo)簽Label要預(yù)測(cè)的答案比如「是否及格」方法的返回值管道Pipeline數(shù)據(jù)處理訓(xùn)練的一整套流程一步接一步執(zhí)行中間件管道數(shù)據(jù)從進(jìn)去到出來(lái)按順序處理模型Model最終訓(xùn)練出來(lái)的產(chǎn)物用來(lái)預(yù)測(cè)新數(shù)據(jù)編譯好的程序直接調(diào)用就能出結(jié)果一句話(huà)總結(jié)整個(gè)流程把帶「特征標(biāo)簽」的歷史數(shù)據(jù)喂進(jìn)管道算法自動(dòng)學(xué)習(xí)規(guī)律輸出模型以后用模型輸入新的特征就能得到預(yù)測(cè)的標(biāo)簽。三、手把手實(shí)戰(zhàn)預(yù)測(cè)考試能不能及格我們做一個(gè)最簡(jiǎn)單的二分類(lèi)功能根據(jù)學(xué)生的「每日學(xué)習(xí)時(shí)長(zhǎng)」和「刷題數(shù)量」預(yù)測(cè)考試能不能及格。全程跟著敲保證能跑通。3.1 環(huán)境準(zhǔn)備你只需要有 Visual Studio 就行推薦2022版.NET 6/7/8 都可以。新建一個(gè)「控制臺(tái)應(yīng)用」項(xiàng)目名字隨便起比如MLNET.FirstDemo右鍵項(xiàng)目 → 管理NuGet程序包 → 搜索Microsoft.ML→ 安裝最新穩(wěn)定版就這一步環(huán)境就搭好了。不用裝Python、不用配環(huán)境變量比Python的機(jī)器學(xué)習(xí)環(huán)境簡(jiǎn)單太多。3.2 準(zhǔn)備訓(xùn)練數(shù)據(jù)我們用CSV格式存數(shù)據(jù)ML.NET原生支持。在項(xiàng)目根目錄右鍵 → 添加 → 新建項(xiàng) → 文本文件命名為student_data.csv把下面的數(shù)據(jù)復(fù)制進(jìn)去StudyHours,ExerciseCount,IsPassed 2.5,30,0 1.2,10,0 4.0,60,1 3.0,45,1 0.8,5,0 5.0,80,1 2.0,25,0 3.5,50,1 1.5,15,0 4.5,70,1字段說(shuō)明StudyHours每日學(xué)習(xí)時(shí)長(zhǎng)單位小時(shí)ExerciseCount每日刷題數(shù)量IsPassed是否及格1及格0不及格這就是我們的「標(biāo)簽」非常重要的一步右鍵這個(gè)csv文件 → 屬性 → 「復(fù)制到輸出目錄」選擇「如果較新則復(fù)制」不然運(yùn)行的時(shí)候會(huì)報(bào)找不到文件90%的小白第一次都會(huì)踩這個(gè)坑。3.3 定義數(shù)據(jù)實(shí)體類(lèi)我們需要兩個(gè)類(lèi)一個(gè)用來(lái)裝輸入的訓(xùn)練數(shù)據(jù)一個(gè)用來(lái)接收預(yù)測(cè)結(jié)果。新建StudentData.csusingMicrosoft.ML.Data;/// summary/// 輸入數(shù)據(jù)類(lèi)對(duì)應(yīng)CSV里的每一行/// /summarypublicclassStudentData{// LoadColumn(0) 對(duì)應(yīng)CSV的第0列也就是第一列[LoadColumn(0)]publicfloatStudyHours{get;set;}[LoadColumn(1)]publicfloatExerciseCount{get;set;}[LoadColumn(2)]publicboolIsPassed{get;set;}}?? 新手注意數(shù)值類(lèi)型統(tǒng)一用float不要用double或者int不然訓(xùn)練的時(shí)候會(huì)報(bào)類(lèi)型不匹配的錯(cuò)誤。新建StudentPrediction.csusingMicrosoft.ML.Data;/// summary/// 預(yù)測(cè)結(jié)果類(lèi)模型輸出的結(jié)果/// /summarypublicclassStudentPrediction{// 預(yù)測(cè)出來(lái)的標(biāo)簽是否及格[ColumnName(PredictedLabel)]publicboolIsPredictedPass{get;set;}// 預(yù)測(cè)的概率0~1數(shù)值越大越可能及格[ColumnName(Probability)]publicfloatPassProbability{get;set;}}3.4 編寫(xiě)訓(xùn)練代碼打開(kāi)Program.cs我們一步步寫(xiě)。首先引入命名空間usingMicrosoft.ML;第一步創(chuàng)建ML上下文這是所有操作的入口整個(gè)程序創(chuàng)建一個(gè)就行。// seed1 是為了讓每次訓(xùn)練結(jié)果都一樣方便調(diào)試varmlContextnewMLContext(seed:1);Console.WriteLine( 開(kāi)始訓(xùn)練考試及格預(yù)測(cè)模型 );第二步加載訓(xùn)練數(shù)據(jù)// 從CSV文件加載數(shù)據(jù)IDataViewtrainingDatamlContext.Data.LoadFromTextFileStudentData(path:student_data.csv,separatorChar:,,// 用逗號(hào)分隔列hasHeader:true// 第一行是表頭不算數(shù)據(jù));IDataView你就理解成ML.NET專(zhuān)用的數(shù)據(jù)表不用深究原理知道它是用來(lái)裝數(shù)據(jù)的就行。第三步搭建訓(xùn)練管道這是核心的一步像搭積木一樣把數(shù)據(jù)處理和算法按順序拼起來(lái)。varpipelinemlContext.Transforms// 1. 把所有特征列合并成一個(gè)叫 Features 的列這是算法的硬性要求.Concatenate(Features,nameof(StudentData.StudyHours),nameof(StudentData.ExerciseCount))// 2. 特征歸一化把不同量級(jí)的數(shù)值縮放到0~1之間// 比如學(xué)習(xí)時(shí)長(zhǎng)0~5小時(shí)刷題數(shù)0~100量級(jí)差太大歸一化后算法更容易學(xué)習(xí).Append(mlContext.Transforms.NormalizeMinMax(Features))// 3. 選擇訓(xùn)練算法二分類(lèi)用FastTree效果穩(wěn)定新手不用調(diào)參.Append(mlContext.BinaryClassification.Trainers.FastTree(labelColumnName:nameof(StudentData.IsPassed),// 標(biāo)簽列名featureColumnName:Features// 特征列名));不用糾結(jié)為什么選這個(gè)算法新手記住二分類(lèi)、回歸預(yù)測(cè)先用FastTree準(zhǔn)沒(méi)錯(cuò)。第四步訓(xùn)練模型管道搭好了調(diào)用Fit方法就開(kāi)始訓(xùn)練了。Console.WriteLine(模型訓(xùn)練中...);varmodelpipeline.Fit(trainingData);Console.WriteLine(模型訓(xùn)練完成);就這一行代碼訓(xùn)練就完成了。小數(shù)據(jù)集幾毫秒就跑完了。第五步評(píng)估模型準(zhǔn)不準(zhǔn)不能光訓(xùn)練得知道模型效果怎么樣。// 用訓(xùn)練數(shù)據(jù)跑一遍預(yù)測(cè)生成評(píng)估結(jié)果varpredictionsmodel.Transform(trainingData);// 自動(dòng)計(jì)算各項(xiàng)評(píng)估指標(biāo)varmetricsmlContext.BinaryClassification.Evaluate(predictions,labelColumnName:nameof(StudentData.IsPassed));Console.WriteLine(\n 模型評(píng)估結(jié)果 );Console.WriteLine($準(zhǔn)確率{metrics.Accuracy:P2});Console.WriteLine($AUC值{metrics.AreaUnderRocCurve:P2});準(zhǔn)確率就是預(yù)測(cè)正確的比例越高越好。我們演示數(shù)據(jù)量小準(zhǔn)確率會(huì)很高實(shí)際項(xiàng)目里能到85%以上就具備生產(chǎn)使用價(jià)值了。第六步單條數(shù)據(jù)測(cè)試預(yù)測(cè)來(lái)試試用模型預(yù)測(cè)新的學(xué)生數(shù)據(jù)。// 創(chuàng)建預(yù)測(cè)引擎varpredictormlContext.Model.CreatePredictionEngineStudentData,StudentPrediction(model);// 測(cè)試一個(gè)學(xué)生每天學(xué)3小時(shí)刷40道題vartestStudentnewStudentData{StudyHours3f,ExerciseCount40f};varresultpredictor.Predict(testStudent);Console.WriteLine(\n 預(yù)測(cè)測(cè)試 );Console.WriteLine($學(xué)生情況每天學(xué)習(xí){testStudent.StudyHours}小時(shí)刷題{testStudent.ExerciseCount}道);Console.WriteLine($及格概率{result.PassProbability:P2});Console.WriteLine($預(yù)測(cè)結(jié)果{(result.IsPredictedPass?能及格:不及格)});第七步保存模型以后直接用訓(xùn)練好的模型可以保存成文件下次不用重新訓(xùn)練直接加載就能用。// 把模型保存成zip文件mlContext.Model.Save(model,trainingData.Schema,student_pass_model.zip);Console.WriteLine(\n模型已保存為 student_pass_model.zip);現(xiàn)在按F5運(yùn)行你就能看到完整的訓(xùn)練日志和預(yù)測(cè)結(jié)果了。恭喜你你的第一個(gè)AI功能已經(jīng)跑通了是不是沒(méi)那么玄乎四、更進(jìn)一步做成Web接口給業(yè)務(wù)系統(tǒng)用訓(xùn)練好的模型不能只在控制臺(tái)里跑最終要集成到業(yè)務(wù)系統(tǒng)里。最常用的方式就是做成WebAPI接口。這里有個(gè)新手必踩的大坑一定要注意不要把 PredictionEngine 注冊(cè)成單例。4.1 為什么不能用單例PredictionEngine不是線(xiàn)程安全的多個(gè)人同時(shí)調(diào)用接口就會(huì)出現(xiàn)數(shù)據(jù)錯(cuò)亂甚至崩潰就像你不能把 DbContext 注冊(cè)成單例一樣。官方給的標(biāo)準(zhǔn)解決方案是用PredictionEnginePool也就是對(duì)象池模式自動(dòng)管理對(duì)象的創(chuàng)建和復(fù)用線(xiàn)程安全性能還高。4.2 具體實(shí)現(xiàn)步驟新建一個(gè)ASP.NET Core Web API 項(xiàng)目把剛才訓(xùn)練好的student_pass_model.zip復(fù)制到項(xiàng)目根目錄同樣設(shè)置「如果較新則復(fù)制」把StudentData和StudentPrediction兩個(gè)實(shí)體類(lèi)復(fù)制過(guò)來(lái)NuGet安裝Microsoft.ML在Program.cs里注冊(cè)服務(wù)builder.Services.AddPredictionEnginePoolStudentData,StudentPrediction().FromFile(student_pass_model.zip);新建控制器寫(xiě)預(yù)測(cè)接口usingMicrosoft.AspNetCore.Mj;usingMicrosoft.ML;[ApiController][Route(api/[controller])]publicclassStudentController:ControllerBase{privatereadonlyPredictionEnginePoolStudentData,StudentPrediction_predictionPool;// 注入對(duì)象池publicStudentController(PredictionEnginePoolStudentData,StudentPredictionpredictionPool){_predictionPoolpredictionPool;}[HttpPost(predict-pass)]publicIActionResultPredictPass([FromBody]StudentDatarequest){varresult_predictionPool.Predict(request);returnOk(new{PassProbabilityMath.Round(result.PassProbability,4),IsPredictedPassresult.IsPredictedPass});}}啟動(dòng)項(xiàng)目用Swagger就能直接測(cè)試接口。部署和普通的.NET接口完全一樣不用裝任何額外環(huán)境丟到IIS、Docker、Linux上都能直接跑。五、小白必踩的5個(gè)坑提前避開(kāi)少走彎路這些都是我剛?cè)腴T(mén)的時(shí)候?qū)嵈驅(qū)嵅冗^(guò)的每個(gè)坑都折騰了好久今天全分享出來(lái)幫你省時(shí)間。數(shù)值類(lèi)型用錯(cuò)報(bào)類(lèi)型不匹配現(xiàn)象訓(xùn)練的時(shí)候報(bào)錯(cuò)Schema mismatch原因字段用了 double 或者 intML.NET 默認(rèn)要求 float 類(lèi)型解決所有數(shù)值字段統(tǒng)一用 float 類(lèi)型CSV文件找不到現(xiàn)象運(yùn)行提示「找不到文件」原因沒(méi)設(shè)置復(fù)制到輸出目錄程序去bin目錄找文件找不到解決右鍵csv文件→屬性→復(fù)制到輸出目錄→選擇「如果較新則復(fù)制」標(biāo)簽列放進(jìn)特征里準(zhǔn)確率虛高現(xiàn)象訓(xùn)練準(zhǔn)確率99%上線(xiàn)之后完全不準(zhǔn)原因不小心把標(biāo)簽列也拼進(jìn)了 Features 里相當(dāng)于考試提前給了答案解決拼接特征的時(shí)候一定要把標(biāo)簽列排除掉Web環(huán)境用單例預(yù)測(cè)引擎并發(fā)就崩現(xiàn)象本地測(cè)試好好的上線(xiàn)多人用就出現(xiàn)詭異錯(cuò)誤甚至崩潰原因PredictionEngine 不是線(xiàn)程安全的不能單例共享解決Web項(xiàng)目一律用 PredictionEnginePool數(shù)據(jù)量太少死磕算法調(diào)參數(shù)現(xiàn)象只有幾十條數(shù)據(jù)效果不好就挨個(gè)換算法、調(diào)各種參數(shù)原因數(shù)據(jù)量不足的時(shí)候算法再厲害也學(xué)不出有效規(guī)律解決優(yōu)先增加數(shù)據(jù)量、提升數(shù)據(jù)質(zhì)量這比調(diào)參有用10倍六、后續(xù)學(xué)習(xí)路線(xiàn)從入門(mén)到落地不用上來(lái)就啃厚厚的算法書(shū)邊做邊學(xué)效率最高。入門(mén)階段先把這篇的例子跑通熟悉基本流程再試試回歸、聚類(lèi)等不同任務(wù)工具進(jìn)階試試 Model BuilderVS官方插件可視化操作不用寫(xiě)訓(xùn)練代碼自動(dòng)生成完整項(xiàng)目業(yè)務(wù)落地結(jié)合自己的工作找個(gè)小需求落地比如給系統(tǒng)加個(gè)異常預(yù)警、自動(dòng)分類(lèi)功能深入學(xué)習(xí)有興趣再慢慢了解特征工程、算法原理優(yōu)化模型效果寫(xiě)在最后很多人總覺(jué)得AI很高大上要學(xué)很多東西才能入門(mén)。但其實(shí)對(duì)于我們普通開(kāi)發(fā)者來(lái)說(shuō)大部分時(shí)候我們只是需要一個(gè)工具來(lái)解決業(yè)務(wù)問(wèn)題不用懂底層原理也能用好。ML.NET 的價(jià)值就在于此它把復(fù)雜的算法都封裝好了我們只需要熟悉業(yè)務(wù)知道怎么把問(wèn)題轉(zhuǎn)化成機(jī)器學(xué)習(xí)能解決的樣子就能快速落地。不用等「準(zhǔn)備好」再開(kāi)始找個(gè)小需求照著敲一遍你就已經(jīng)入門(mén)了。

相關(guān)新聞

產(chǎn)品經(jīng)理 開(kāi)需求會(huì):2026年3款VIVO錄音轉(zhuǎn)文字哪個(gè)更好用

產(chǎn)品經(jīng)理 開(kāi)需求會(huì):2026年3款VIVO錄音轉(zhuǎn)文字哪個(gè)更好用

按人群先給建議 針對(duì)2026年VIVO機(jī)型上的三款錄音轉(zhuǎn)文字工具,我們不做單一萬(wàn)能排名,按場(chǎng)景給明確結(jié)論:如果只要基礎(chǔ)免費(fèi)轉(zhuǎn)寫(xiě),優(yōu)先選系統(tǒng)自帶的錄音轉(zhuǎn)文字助手;如果是開(kāi)發(fā)者需要集成轉(zhuǎn)寫(xiě)能力,可考慮Assembly…

2026/8/3 22:58:29 閱讀更多
Neo4j與Docker容器化部署實(shí)戰(zhàn)指南

Neo4j與Docker容器化部署實(shí)戰(zhàn)指南

1. Neo4j與Docker的黃金組合在數(shù)據(jù)爆炸式增長(zhǎng)的時(shí)代,圖數(shù)據(jù)庫(kù)憑借其強(qiáng)大的關(guān)聯(lián)數(shù)據(jù)處理能力脫穎而出。作為圖數(shù)據(jù)庫(kù)領(lǐng)域的標(biāo)桿產(chǎn)品,Neo4j通過(guò)節(jié)點(diǎn)、關(guān)系和屬性來(lái)存儲(chǔ)數(shù)據(jù),特別適合處理復(fù)雜的關(guān)系網(wǎng)絡(luò)。而Docker作為輕量級(jí)的容器化技術(shù)&#x…

2026/8/2 14:09:23 閱讀更多
期貨量化交易中過(guò)擬合的識(shí)別與防范策略

期貨量化交易中過(guò)擬合的識(shí)別與防范策略

1. 期貨量化交易中的過(guò)擬合陷阱 做量化交易的朋友都知道,策略失效是最大的噩夢(mèng)。去年我團(tuán)隊(duì)開(kāi)發(fā)的一個(gè)CTA策略,在回測(cè)階段年化收益高達(dá)80%,結(jié)果實(shí)盤(pán)運(yùn)行三個(gè)月就虧掉了20%的本金。復(fù)盤(pán)時(shí)發(fā)現(xiàn),這個(gè)策略完美擬合了歷史數(shù)據(jù)中的特定波…

2026/8/4 10:13:01 閱讀更多
2027 甘肅工業(yè)裝備與智能制造展覽會(huì)

2027 甘肅工業(yè)裝備與智能制造展覽會(huì)

智造隴原?裝備西北|2027 甘肅工業(yè)裝備與智能制造展覽會(huì)全面開(kāi)啟招展工作 順應(yīng)制造業(yè)智能化、綠色化發(fā)展趨勢(shì),助力甘肅省 “強(qiáng)工業(yè)” 行動(dòng)落地實(shí)施,2027 甘肅工業(yè)裝備與智能制造展覽會(huì)(GIME2027)定檔 2027 年 5 月 14 …

2026/8/4 10:13:01 閱讀更多
SpringBoot寵物游戲平臺(tái)開(kāi)發(fā)指南與實(shí)戰(zhàn)

SpringBoot寵物游戲平臺(tái)開(kāi)發(fā)指南與實(shí)戰(zhàn)

1. 項(xiàng)目概述 "基于SpringBoot的購(gòu)買(mǎi)狗線(xiàn)上游戲平臺(tái)"是一個(gè)典型的Java畢業(yè)設(shè)計(jì)選題,它結(jié)合了當(dāng)前流行的電商平臺(tái)和寵物養(yǎng)成游戲的特性。這個(gè)選題之所以適合作為畢業(yè)設(shè)計(jì),是因?yàn)樗w了企業(yè)級(jí)應(yīng)用開(kāi)發(fā)的多個(gè)核心模塊:用戶(hù)系統(tǒng)、商品…

2026/8/4 10:13:01 閱讀更多
【實(shí)戰(zhàn)】Jetson 邊緣部署工業(yè)安全監(jiān)控:YOLO PPE + VLM 行為分析,一條命令跑通

【實(shí)戰(zhàn)】Jetson 邊緣部署工業(yè)安全監(jiān)控:YOLO PPE + VLM 行為分析,一條命令跑通

適合人群:做邊緣 AI / 工業(yè)視覺(jué) / Jetson 落地的工程師、學(xué)生、安全方案集成商 閱讀收益:理解「檢測(cè) 行為理解」雙通路架構(gòu),并拿到可一鍵復(fù)現(xiàn)的 Docker 部署路徑 硬件驗(yàn)證:reComputer Industrial J4012 / reServer Industrial J4…

2026/8/4 10:13:01 閱讀更多
從零構(gòu)建企業(yè)級(jí)RAG與Agent系統(tǒng):LangChain實(shí)戰(zhàn)指南

從零構(gòu)建企業(yè)級(jí)RAG與Agent系統(tǒng):LangChain實(shí)戰(zhàn)指南

如果你正在學(xué)習(xí)大模型應(yīng)用開(kāi)發(fā),可能會(huì)遇到這樣的困境:看了很多關(guān)于LangChain、RAG、Agent的教程,但依然不知道如何把這些技術(shù)串聯(lián)起來(lái),構(gòu)建一個(gè)真正能解決實(shí)際問(wèn)題的企業(yè)級(jí)應(yīng)用。你可能會(huì)困惑:為什么別人的RAG系統(tǒng)能精…

2026/8/4 10:03:01 閱讀更多
清華大學(xué)重磅EST:植物自導(dǎo)電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級(jí)轉(zhuǎn)化為CeO?-石墨烯電催化劑!

清華大學(xué)重磅EST:植物自導(dǎo)電閃蒸焦耳熱600°C/2600°C兩步法!稀土超積累植物秒級(jí)轉(zhuǎn)化為CeO?-石墨烯電催化劑!

通訊作者:鄧兵、劉建國(guó)通訊單位:清華大學(xué)DOI:https://doi.org/10.1021/acs.est.6c00603研究背景稀土元素(REEs)是清潔能源技術(shù)與電子器件不可或缺的核心原料,然而傳統(tǒng)提取方式依賴(lài)能耗高、排放大的采礦與強(qiáng)…

2026/8/4 0:01:30 閱讀更多
貴州師范大學(xué)JCIS:混合焓調(diào)控設(shè)計(jì)PtCoNiCuCr高熵合金!ORR半波電位0.89 V/質(zhì)量活性2.4倍Pt/C!

貴州師范大學(xué)JCIS:混合焓調(diào)控設(shè)計(jì)PtCoNiCuCr高熵合金!ORR半波電位0.89 V/質(zhì)量活性2.4倍Pt/C!

研究背景質(zhì)子交換膜燃料電池(PEMFCs)因其高能量轉(zhuǎn)換效率和清潔零排放特性備受關(guān)注,然而陰極氧還原反應(yīng)(ORR)動(dòng)力學(xué)遲緩、鉑催化劑成本高昂且耐久性不足的問(wèn)題嚴(yán)重制約了其商業(yè)化進(jìn)程。將 Pt 與 3d 過(guò)渡金屬合金化可調(diào)控…

2026/8/4 0:01:30 閱讀更多
福州大學(xué)/清華大學(xué)AFM:脈沖焦耳熱900°C/1s合成Co?Cu催化劑,寬電位NH?法拉第效率~100%,MEA穩(wěn)定300h

福州大學(xué)/清華大學(xué)AFM:脈沖焦耳熱900°C/1s合成Co?Cu催化劑,寬電位NH?法拉第效率~100%,MEA穩(wěn)定300h

通訊作者:萬(wàn)宇馳、張久俊、呂瑞濤通訊單位:福州大學(xué) 、清華大學(xué)DOI:https://doi.org/10.1002/adfm.76112核心導(dǎo)讀:本文提出"分步升級(jí)"廢硝酸鹽處理新路線(xiàn)——利用廢水中的金屬離子經(jīng)快速焦耳熱(40V&#xff…

2026/8/4 0:01:30 閱讀更多
MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案

MoneyPrinterPlus實(shí)戰(zhàn)指南:AI視頻批量生成與自動(dòng)化發(fā)布完整解決方案 【免費(fèi)下載鏈接】MoneyPrinterPlus AI一鍵批量生成各類(lèi)短視頻,自動(dòng)批量混剪短視頻,自動(dòng)把視頻發(fā)布到抖音,快手,小紅書(shū),視頻號(hào)上,賺錢(qián)從來(lái)沒(méi)有這么容易過(guò)! 支持本地語(yǔ)音模型chatTTS,fasterwhisper,…

2026/8/3 7:44:46 閱讀更多
3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南

3分鐘搞定!QQ空間歷史說(shuō)說(shuō)完整備份終極指南 【免費(fèi)下載鏈接】GetQzonehistory 獲取QQ空間發(fā)布的歷史說(shuō)說(shuō) 項(xiàng)目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過(guò),那些年發(fā)過(guò)的QQ空間說(shuō)說(shuō),那些記錄青春的文字…

2026/8/3 12:53:38 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應(yīng)用材料(Applied Materials)公司生產(chǎn)的一款用于半導(dǎo)體設(shè)備的I/O信號(hào)分配電路板。該型號(hào)(0100-02186)的核心特點(diǎn)如下:專(zhuān)用于Endura等半導(dǎo)體工藝腔室。集成信號(hào)路由與分配功能。連接控制…

2026/8/3 19:34:52 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動(dòng)機(jī)是日本日清(Nissei)品牌的一款工業(yè)用三相異步電機(jī),適用于自動(dòng)化設(shè)備及通用機(jī)械驅(qū)動(dòng)。該型號(hào)(FFMN-32L-10-T0 40AX)的核心特點(diǎn)如下:三相交流異步電動(dòng)機(jī)。額定…

2026/8/3 19:34:54 閱讀更多