chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Java開(kāi)發(fā)者LLM實(shí)戰(zhàn)——使用LangChain4j構(gòu)建本地RAG系統(tǒng)

京東云 ? 來(lái)源:jf_75140285 ? 作者:jf_75140285 ? 2024-07-02 10:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1、引言

由于目前比較火的chatGPT是預(yù)訓(xùn)練模型,而訓(xùn)練一個(gè)大模型是需要較長(zhǎng)時(shí)間(參數(shù)越多學(xué)習(xí)時(shí)間越長(zhǎng),保守估計(jì)一般是幾個(gè)月,不差錢的可以多用點(diǎn)GPU縮短這個(gè)時(shí)間),這就導(dǎo)致了它所學(xué)習(xí)的知識(shí)不會(huì)是最新的,最新的chatGPT-4o只能基于2023年6月之前的數(shù)據(jù)進(jìn)行回答,距離目前已經(jīng)快一年的時(shí)間,如果想讓GPT基于近一年的時(shí)間回復(fù)問(wèn)題,就需要RAG(檢索增強(qiáng)生成)技術(shù)了。

wKgZomaDZquAZySvAALANhIlghM326.png

此外,對(duì)于公司內(nèi)部的私有數(shù)據(jù),為了數(shù)據(jù)安全、商業(yè)利益考慮,不能放到互聯(lián)網(wǎng)上的數(shù)據(jù),因此GPT也沒(méi)有這部分的知識(shí),如果需要GPT基于這部分私有的知識(shí)進(jìn)行回答,也需要使用RAG技術(shù)。

wKgZomaDZq-AGF5DAAMJVqUI0Gw144.png

本文將通過(guò)實(shí)戰(zhàn)代碼示例,意在幫助沒(méi)有大模型實(shí)戰(zhàn)經(jīng)驗(yàn)的Java工程師掌握使用LangChain4j框架進(jìn)行大模型開(kāi)發(fā)。

2、基本概念

2.1 什么是RAG

RAG(Retrieval-Augmented Generation)的核心思想是:將傳統(tǒng)的信息檢索(IR)技術(shù)與現(xiàn)代的生成式大模型(如chatGPT)結(jié)合起來(lái)。

具體來(lái)說(shuō),RAG模型在生成答案之前,會(huì)首先從一個(gè)大型的文檔庫(kù)或知識(shí)庫(kù)中檢索到若干條相關(guān)的文檔片段。再將這些檢索到的片段作為額外的上下文信息,輸入到生成模型中,從而生成更為準(zhǔn)確和信息豐富的文本。

RAG的工作原理可以分為以下幾個(gè)步驟:

1.接收請(qǐng)求:首先,系統(tǒng)接收到用戶的請(qǐng)求(例如提出一個(gè)問(wèn)題)。

2.信息檢索(R):系統(tǒng)從一個(gè)大型文檔庫(kù)中檢索出與查詢最相關(guān)的文檔片段。這一步的目標(biāo)是找到那些可能包含答案或相關(guān)信息的文檔。

3.生成增強(qiáng)(A):將檢索到的文檔片段與原始查詢一起輸入到大模型(如chatGPT)中,注意使用合適的提示詞,比如原始的問(wèn)題是XXX,檢索到的信息是YYY,給大模型的輸入應(yīng)該類似于:請(qǐng)基于YYY回答XXXX。

4.輸出生成(G):大模型基于輸入的查詢和檢索到的文檔片段生成最終的文本答案,并返回給用戶。

第2步驟中的信息檢索,不一定必須使用向量數(shù)據(jù)庫(kù),可以是關(guān)系型數(shù)據(jù)庫(kù)(如MySQL)或全文搜索引擎(如Elasticsearch, ES),

但大模型應(yīng)用場(chǎng)景廣泛使用向量數(shù)據(jù)庫(kù)的原因是:在大模型RAG的應(yīng)用場(chǎng)景中,主要是要查詢相似度高的某幾個(gè)文檔,而不是精確的查找某一條(MySQL、ES擅長(zhǎng))。

相似度高的兩個(gè)文檔,可能不包含相同的關(guān)鍵詞。 例如,句子1: "他很高興。" 句子2: "他感到非常快樂(lè)。" 雖然都是描述【他】很開(kāi)心快樂(lè)的心情,但是不包含相同的關(guān)鍵詞;

包含相同的關(guān)鍵詞的兩個(gè)文檔可能完全沒(méi)有關(guān)聯(lián),例如:句子1: "他喜歡蘋(píng)果。" 句子2: "蘋(píng)果是一家大公司。" 雖然都包含相同的關(guān)鍵詞【蘋(píng)果】,但兩句話的相似度很低。

2.2 LangChain4j簡(jiǎn)介

LangChain4j是LangChiain的java版本,

LangChain的Lang取自Large Language Model,代表大語(yǔ)言模型,

Chain是鏈?zhǔn)綀?zhí)行,即把語(yǔ)言模型應(yīng)用中的各功能模塊化,串聯(lián)起來(lái),形成一個(gè)完整的工作流。

它是面向大語(yǔ)言模型的開(kāi)發(fā)框架,意在封裝與LLM對(duì)接的細(xì)節(jié),簡(jiǎn)化開(kāi)發(fā)流程,提升基于LLM開(kāi)發(fā)的效率。

更多介紹,詳見(jiàn): https://github.com/langchain4j/langchain4j/blob/main/README.md?

2.3 大模型開(kāi)發(fā) vs. 傳統(tǒng)JAVA開(kāi)發(fā)

大模型開(kāi)發(fā)——大模型實(shí)現(xiàn)業(yè)務(wù)邏輯:

開(kāi)發(fā)前,開(kāi)發(fā)人員關(guān)注數(shù)據(jù)準(zhǔn)備(進(jìn)行訓(xùn)練)、選擇和微調(diào)模型(得到更好的效果,更能匹配業(yè)務(wù)預(yù)期),

開(kāi)發(fā)過(guò)程中(大多數(shù)時(shí)候),重點(diǎn)在于如何有效的與大模型(LLM)進(jìn)行溝通,利用LLM的專業(yè)知識(shí)解決特定的業(yè)務(wù)問(wèn)題,

開(kāi)發(fā)中更關(guān)注如何描述問(wèn)題(提示工程 Propmt Engineering)進(jìn)行有效的推理,關(guān)注如何將大模型的使用集成到現(xiàn)有的業(yè)務(wù)系統(tǒng)中。

傳統(tǒng)的JAVA開(kāi)發(fā)——開(kāi)發(fā)者實(shí)現(xiàn)業(yè)務(wù)邏輯:

開(kāi)發(fā)前,開(kāi)發(fā)人員關(guān)注系統(tǒng)架構(gòu)的選擇(高并發(fā)、高可用),功能的拆解、模塊化等設(shè)計(jì)。

開(kāi)發(fā)過(guò)程中(大多數(shù)時(shí)候)是根據(jù)特定的業(yè)務(wù)問(wèn)題,設(shè)計(jì)特定的算法、數(shù)據(jù)存儲(chǔ)等以實(shí)現(xiàn)業(yè)務(wù)邏輯,以編碼為主。

3. 實(shí)戰(zhàn)經(jīng)驗(yàn)

3.1 環(huán)境搭建

3.1.1 向量庫(kù)(Chroma)

Windows:

先安裝python,參考: https://docs.python.org/zh-cn/3/using/windows.html#the-full-installer

PS:注意需要配置環(huán)境變量

驗(yàn)證-執(zhí)行:

python --version

wKgaomaDZrCAU7OgAAAXfU9xWxQ204.png

再安裝chroma,參考:https://docs.trychroma.com/getting-started

驗(yàn)證-執(zhí)行:

chroma run

wKgZomaDZrGAVPT8AAB6U8_1Dr4536.png

Mac:

現(xiàn)先安裝python

brew install python

或者下載安裝: https://www.python.org/downloads/macos/

驗(yàn)證-執(zhí)行:

python --version

wKgaomaDZrKAVN8hAACFwKUj46Q886.png

安裝chroma(同上),參考:https://docs.trychroma.com/getting-started

驗(yàn)證-執(zhí)行:

chroma run

wKgZomaDZrOAZIeNAAG22JJ75Y0986.png

?

3.1.2 集成LangChain4j


        0.31.0


	dev.langchain4j
	langchain4j-core
	${langchain4j.version}


	dev.langchain4j
	langchain4j
	 ${langchain4j.version} 


	dev.langchain4j
	langchain4j-open-ai
	 ${langchain4j.version} 


	dev.langchain4j
	langchain4j-embeddings
	 ${langchain4j.version} 


	dev.langchain4j
	langchain4j-chroma
	 ${langchain4j.version} 


	io.github.amikos-tech
	chromadb-java-client
	 ${langchain4j.version} 

3.2 程序編寫(xiě)

3.2.1 項(xiàng)目結(jié)構(gòu)

LangChain ├── core │ ├── src │ │ ├── main │ │ │ ├── java │ │ │ │ └── cn.jdl.tech_and_data.ka │ │ │ │ ├── ChatWithMemory │ │ │ │ ├── Constants │ │ │ │ ├── Main │ │ │ │ ├── RagChat │ │ │ │ └── Utils │ │ │ ├── resources │ │ │ │ ├── log4j2.xml │ │ │ │ └── 笑話.txt │ │ ├── test │ │ │ └── java │ ├── target ├── pom.xml ├── parent [learn.langchain.parent] ├── pom.xml

?

3.2.2 知識(shí)采集

一般是公司內(nèi)網(wǎng)的知識(shí)庫(kù)中或互聯(lián)網(wǎng)上進(jìn)行數(shù)據(jù)采集,獲取到的文本文件、WORD文檔或PDF文件,本文使用resources目錄下的【笑話.txt】作為知識(shí)采集的結(jié)果文件

URL docUrl = Main.class.getClassLoader().getResource("笑話.txt");
if(docUrl==null){
    log.error("未獲取到文件");
}
Document document = getDocument(docUrl);
if(document==null){
    log.error("加載文件失敗");
}
private static Document getDocument(URL resource) {
    Document document = null;
    try{
        Path path = Paths.get(resource.toURI());
        document = FileSystemDocumentLoader.loadDocument(path);
    }catch (URISyntaxException e){
        log.error("加載文件發(fā)生異常", e);
    }
    return document;
}

3.2.3 文檔切分

使用dev.langchain4j.data.document.splitter.DocumentSplitters#recursize

它有三個(gè)參數(shù):分段大?。ㄒ粋€(gè)分段中最大包含多少個(gè)token)、重疊度(段與段之前重疊的token數(shù))、分詞器(將一段文本進(jìn)行分詞,得到token)

其中,重疊度的設(shè)計(jì)是為了減少按大小拆分后切斷原來(lái)文本的語(yǔ)義,使其盡量完整。

wKgaomaDZrSAN4cuAAG9bAJR9OQ826.png

DocumentSplitter splitter = DocumentSplitters.recursive(150,10,new OpenAiTokenizer());
splitter.split(document);

關(guān)于Token(標(biāo)記)

Token是經(jīng)過(guò)分詞后的文本單位,即將一個(gè)文本分詞后得到的詞、子詞等的個(gè)數(shù),具體取決于分詞器(Tokenizer),

比如:我喜歡吃蘋(píng)果,可以拆分成我/喜歡/吃/蘋(píng)果,token數(shù)量=4, 也可以拆分成我/喜/歡/吃/蘋(píng)果,token數(shù)量=5

chatGPT使用的是BPE(Byte Pair Encoding)算法進(jìn)行分詞,參見(jiàn): https://en.wikipedia.org/wiki/Byte_pair_encoding

對(duì)于上面文本的分詞結(jié)果如下:

18:17:29.371 [main] INFO  TokenizerTest - 待分詞的文本:我喜歡吃蘋(píng)果
18:17:30.055 [main] INFO  cn.jdl.tech_and_data.ka.Utils - 當(dāng)前的模型是:gpt-4o
18:17:31.933 [main] INFO  TokenizerTest - 分詞結(jié)果:我 / 喜歡 / 吃 / 蘋(píng)果

關(guān)于token與字符的關(guān)系:GPT-4o的回復(fù):

wKgZomaDZraAKm17AAQnu5woQdQ880.png

關(guān)于文檔拆分的目的

由于與LLM交互的時(shí)候輸入的文本對(duì)應(yīng)的token長(zhǎng)度是有限制的,輸入過(guò)長(zhǎng)的內(nèi)容,LLM會(huì)無(wú)響應(yīng)或直接該報(bào)錯(cuò),

因此不能將所有相關(guān)的知識(shí)都作為輸入給到LLM,需要將知識(shí)文檔進(jìn)行拆分,存儲(chǔ)到向量庫(kù),

每次調(diào)用LLM時(shí),先找出與提出的問(wèn)題關(guān)聯(lián)度最高的文檔片段,作為參考的上下文輸入給LLM。

入?yún)⑦^(guò)長(zhǎng),LLM報(bào)錯(cuò):

wKgaomaDZreAGn0uAAEoBn5eOd8152.png

雖然根據(jù)響應(yīng),允許輸入1048576個(gè)字符=1024K個(gè)字符=1M個(gè)字符,

但官網(wǎng)文檔給的32K tokens,而一般1個(gè)中文字符對(duì)應(yīng)1-2個(gè)Token,因此字符串建議不大于64K,實(shí)際使用中,為了保障性能,也是要控制輸入不要過(guò)長(zhǎng)。

如下是常見(jiàn)LLM給定的token輸入上限:

模型名稱 Token 輸入上限(最大長(zhǎng)度)
GPT-3 (davinci) 4096 tokens
GPT-3.5 (text-davinci-003) 4096 tokens
GPT-4 (8k context) 8192 tokens
GPT-4 (32k context) 32768 tokens
LLaMA (7B) 2048 tokens
LLaMA (13B) 2048 tokens
LLaMA (30B) 2048 tokens
LLaMA (65B) 2048 tokens
訊飛星火(SparkDesk) 8192 tokens
文心一言(Ernie 3.0) 4096 tokens
智源悟道(WuDao 2.0) 2048 tokens
阿里巴巴 M6 2048 tokens
華為盤(pán)古(Pangu-Alpha) 2048 tokens
言犀大模型(ChatJd) 2048 tokens

文檔拆分的方案langchain4j中提供了6種:

wKgZomaDZriABvhzAAKflZsl2jk436.png

1、基于字符的:逐個(gè)字符(含空白字符)分割

2、基于行的:按照換行符(n)分割

3、基于段落的:按照連續(xù)的兩個(gè)換行符(nn)分割

4、基于正則的:按照自定義正則表達(dá)式分隔

5、基于句子的(使用Apache OpenNLP,只支持英文,所以可以忽略

審核編輯 黃宇

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • JAVA
    +關(guān)注

    關(guān)注

    20

    文章

    3005

    瀏覽量

    116813
  • ChatGPT
    +關(guān)注

    關(guān)注

    31

    文章

    1599

    瀏覽量

    10390
  • LLM
    LLM
    +關(guān)注

    關(guān)注

    1

    文章

    350

    瀏覽量

    1394
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    【2025夏季班正課】大模型Agent智能體開(kāi)發(fā)實(shí)戰(zhàn) 課分享

    競(jìng)爭(zhēng)力的體現(xiàn)。 綜上所述,拒絕碎片化,擁抱體系化,是 Agent 開(kāi)發(fā)從“手工作坊”走向“工業(yè)化生產(chǎn)”的必由之路。它要求開(kāi)發(fā)者不僅要懂算法,更要懂架構(gòu)、懂工程、懂系統(tǒng)。通過(guò)構(gòu)建標(biāo)準(zhǔn)化的
    發(fā)表于 03-29 16:12

    RAG(檢索增強(qiáng)生成)原理與實(shí)踐

    持續(xù)迭代 :基于用戶反饋和評(píng)估結(jié)果不斷改進(jìn) 選擇合適的工具棧 :根據(jù)實(shí)際需求選擇Embedding模型、向量數(shù)據(jù)庫(kù)和LLM RAG技術(shù)正在快速發(fā)展,掌握其原理與實(shí)踐,將幫助你構(gòu)建更智能、更可靠的AI應(yīng)用。
    發(fā)表于 02-11 12:46

    2025華為開(kāi)發(fā)者大賽暨開(kāi)發(fā)者年度會(huì)議成功舉辦

    開(kāi)發(fā)者大賽總決賽、CEO圓桌、主論壇大咖分享、分論壇技術(shù)演講、開(kāi)發(fā)者展區(qū)&CodeLabs等多元議題,推動(dòng)云開(kāi)發(fā)工具鏈、智能體開(kāi)發(fā)、具身智能等前沿技術(shù)
    的頭像 發(fā)表于 12-31 13:32 ?965次閱讀

    M4-R1 開(kāi)源鴻蒙(OpenHarmory)開(kāi)發(fā)板丨串口調(diào)試助手實(shí)戰(zhàn)案例

    支持與高集成度設(shè)計(jì),成為開(kāi)發(fā)者體驗(yàn)與學(xué)習(xí)鴻蒙系統(tǒng)的理想平臺(tái)。無(wú)論是智慧家居、教學(xué)實(shí)驗(yàn),還是設(shè)備通信,M4-R1都能提供穩(wěn)定可靠的開(kāi)發(fā)環(huán)境。本次分享的
    的頭像 發(fā)表于 12-31 11:16 ?9140次閱讀
    M<b class='flag-5'>4</b>-R1 開(kāi)源鴻蒙(OpenHarmory)<b class='flag-5'>開(kāi)發(fā)</b>板丨串口調(diào)試助手<b class='flag-5'>實(shí)戰(zhàn)</b>案例

    使用NVIDIA Nemotron RAG和Microsoft SQL Server 2025構(gòu)建高性能AI應(yīng)用

    在 Microsoft Ignite 2025 大會(huì)上,隨著 Microsoft SQL Server 2025 的發(fā)布,AI 就緒型企業(yè)數(shù)據(jù)庫(kù)愿景成為現(xiàn)實(shí),為開(kāi)發(fā)者提供強(qiáng)大的新工具,例如內(nèi)置向量
    的頭像 發(fā)表于 12-01 09:31 ?1001次閱讀
    使用NVIDIA Nemotron <b class='flag-5'>RAG</b>和Microsoft SQL Server 2025<b class='flag-5'>構(gòu)建</b>高性能AI應(yīng)用

    RAG實(shí)踐:一文掌握大模型RAG過(guò)程

    RAG(Retrieval-Augmented Generation,檢索增強(qiáng)生成), 一種AI框架,將傳統(tǒng)的信息檢索系統(tǒng)(例如數(shù)據(jù)庫(kù))的優(yōu)勢(shì)與生成式大語(yǔ)言模型(LLM)的功能結(jié)合在一起。不再
    的頭像 發(fā)表于 10-27 18:23 ?1700次閱讀
    <b class='flag-5'>RAG</b>實(shí)踐:一文掌握大模型<b class='flag-5'>RAG</b>過(guò)程

    【深圳站圓滿收官】開(kāi)發(fā)者線下實(shí)戰(zhàn),睿擎工業(yè)平臺(tái)Workshop精彩回顧!|新聞速遞

    。經(jīng)過(guò)4小時(shí)的高強(qiáng)度實(shí)戰(zhàn),所有開(kāi)發(fā)者均成功完成了工業(yè)級(jí)"遠(yuǎn)程監(jiān)控網(wǎng)關(guān)"從環(huán)境搭建到量產(chǎn)部署的全流程開(kāi)發(fā)。深圳現(xiàn)場(chǎng):技術(shù)人的實(shí)戰(zhàn)盛宴深圳站現(xiàn)場(chǎng)
    的頭像 發(fā)表于 09-23 20:19 ?888次閱讀
    【深圳站圓滿收官】<b class='flag-5'>開(kāi)發(fā)者</b>線下<b class='flag-5'>實(shí)戰(zhàn)</b>,睿擎工業(yè)平臺(tái)Workshop精彩回顧!|新聞速遞

    睿擎工業(yè)平臺(tái)4小時(shí)實(shí)戰(zhàn) Workshop · 深圳站,9.18與開(kāi)發(fā)者一起挑戰(zhàn)工業(yè)級(jí)開(kāi)發(fā)!|活動(dòng)預(yù)告

    報(bào)名明日截止!工業(yè)領(lǐng)域的開(kāi)發(fā)者們,請(qǐng)注意!睿擎工業(yè)開(kāi)發(fā)平臺(tái)深度實(shí)戰(zhàn)Workshop·深圳站報(bào)名進(jìn)入最后倒計(jì)時(shí)!9月18日(周四),我們將于深圳帶來(lái)一場(chǎng)真正面向工業(yè)場(chǎng)景的4小時(shí)高強(qiáng)度
    的頭像 發(fā)表于 09-17 18:39 ?728次閱讀
    睿擎工業(yè)平臺(tái)<b class='flag-5'>4</b>小時(shí)<b class='flag-5'>實(shí)戰(zhàn)</b> Workshop · 深圳站,9.18與<b class='flag-5'>開(kāi)發(fā)者</b>一起挑戰(zhàn)工業(yè)級(jí)<b class='flag-5'>開(kāi)發(fā)</b>!|活動(dòng)預(yù)告

    迅龍軟件參加昇騰 AI?開(kāi)發(fā)者創(chuàng)享日?廣東站,為開(kāi)發(fā)者打造沉浸式實(shí)操體驗(yàn)

    7月18日,線下頂尖人才匯聚的開(kāi)發(fā)者盛會(huì)——昇騰AI開(kāi)發(fā)者創(chuàng)享日?廣東站在廣州舉行。活動(dòng)以“創(chuàng)未來(lái)享非凡”為主題,聚焦廣東本地產(chǎn)業(yè)特點(diǎn),分享前沿AI創(chuàng)新技術(shù),搭建生態(tài)交流平臺(tái),幫助開(kāi)發(fā)者
    的頭像 發(fā)表于 07-23 17:18 ?1414次閱讀
    迅龍軟件參加昇騰 AI?<b class='flag-5'>開(kāi)發(fā)者</b>創(chuàng)享日?廣東站,為<b class='flag-5'>開(kāi)發(fā)者</b>打造沉浸式實(shí)操體驗(yàn)

    如何在魔搭社區(qū)使用TensorRT-LLM加速優(yōu)化Qwen3系列模型推理部署

    TensorRT-LLM 作為 NVIDIA 專為 LLM 推理部署加速優(yōu)化的開(kāi)源庫(kù),可幫助開(kāi)發(fā)者快速利用最新 LLM 完成應(yīng)用原型驗(yàn)證與產(chǎn)品部署。
    的頭像 發(fā)表于 07-04 14:38 ?2396次閱讀

    使用 llm-agent-rag-llamaindex 筆記本時(shí)收到的 NPU 錯(cuò)誤怎么解決?

    使用 conda create -n ov-nb-demos python=3.11 創(chuàng)建運(yùn)行 llm-agent-rag-llamaindex notebook 的環(huán)境。 執(zhí)行“創(chuàng)建
    發(fā)表于 06-23 06:26

    本地網(wǎng)站秒變公網(wǎng)可訪問(wèn)!開(kāi)發(fā)者必備的內(nèi)網(wǎng)穿透工具

    效率拉滿! 為什么開(kāi)發(fā)者需要這個(gè)技能? 遠(yuǎn)程協(xié)作 :前端開(kāi)發(fā)本地頁(yè)面,直接分享鏈接給后端/產(chǎn)品,無(wú)需部署到測(cè)試服務(wù)器 實(shí)時(shí)預(yù)覽 :修改代碼后刷新公網(wǎng)鏈接,即時(shí)看到效果,告別反復(fù)打包部署 準(zhǔn)備工作 一臺(tái)運(yùn)行
    的頭像 發(fā)表于 06-19 10:50 ?830次閱讀
    <b class='flag-5'>本地</b>網(wǎng)站秒變公網(wǎng)可訪問(wèn)!<b class='flag-5'>開(kāi)發(fā)者</b>必備的內(nèi)網(wǎng)穿透工具

    潤(rùn)和軟件亮相鯤鵬昇騰開(kāi)發(fā)者大會(huì)2025

    近日,以“心懷摯愛(ài),共綻光芒”為主題的鯤鵬昇騰開(kāi)發(fā)者大會(huì)2025在北京中關(guān)村國(guó)際創(chuàng)新中心成功舉辦。作為鯤鵬、昇騰生態(tài)的緊密合作伙伴,江蘇潤(rùn)和軟件股份有限公司(以下簡(jiǎn)稱“潤(rùn)和軟件”)受邀出席,攜手鯤鵬
    的頭像 發(fā)表于 06-03 16:20 ?1284次閱讀

    【書(shū)籍評(píng)測(cè)活動(dòng)NO.61】Yocto項(xiàng)目實(shí)戰(zhàn)教程:高效定制嵌入式Linux系統(tǒng)

    擴(kuò)展、自動(dòng)化的構(gòu)建工具集 。它采用模塊化架構(gòu)、分層構(gòu)建體系和軟件棧管理機(jī)制,使開(kāi)發(fā)者能夠高效定制、優(yōu)化和維護(hù)嵌入式 Linux 系統(tǒng),可提高開(kāi)發(fā)
    發(fā)表于 05-21 10:00

    Java開(kāi)發(fā)者必備的效率工具——Perforce JRebel是什么?為什么很多Java開(kāi)發(fā)者在用?

    Perforce JRebel是一款Java開(kāi)發(fā)效率工具,旨在幫助java開(kāi)發(fā)人員更快地編寫(xiě)更好的應(yīng)用程序。JRebel可即時(shí)重新加載對(duì)代碼的修改,無(wú)需重啟或重新部署應(yīng)用程序,就能讓
    的頭像 發(fā)表于 04-27 13:44 ?960次閱讀
    <b class='flag-5'>Java</b><b class='flag-5'>開(kāi)發(fā)者</b>必備的效率工具——Perforce JRebel是什么?為什么很多<b class='flag-5'>Java</b><b class='flag-5'>開(kāi)發(fā)者</b>在用?