用LangChain,Ollama做一个本地翻译系统
·
import gradio as gr
from langchain_ollama import ChatOllama
from langchain_core.messages import HumanMessage, SystemMessage
# 1. 初始化 Ollama 模型
# 确保 Ollama 已启动且模型已拉取:ollama pull maternion/hy-mt2:1.8b
llm = ChatOllama(model="maternion/hy-mt2:1.8b")
def translate_text(text, source_lang, target_lang):
if not text:
return ""
# 构建翻译提示词
system_prompt = f"你是一个专业的翻译助手。请将以下文本从{source_lang}翻译成{target_lang}。"
messages = [
SystemMessage(content=system_prompt),
HumanMessage(content=text)
]
# 调用模型
response = llm.invoke(messages)
return response.content
# 2. 构建 Gradio 界面
languages = ["中文", "英语", "日语", "韩语", "法语", "德语"]
with gr.Blocks() as demo:
gr.Markdown("## 腾讯混元翻译模型 (Hy-MT2)")
with gr.Row():
source_lang = gr.Dropdown(languages, label="源语言", value="韩语")
target_lang = gr.Dropdown(languages, label="目标语言", value="中文")
with gr.Row():
input_text = gr.Textbox(label="输入文本", lines=5)
output_text = gr.Textbox(label="翻译结果", lines=5, interactive=False)
btn = gr.Button("翻译")
btn.click(fn=translate_text, inputs=[input_text, source_lang, target_lang], outputs=output_text)
demo.launch()
import gradio as gr
from langchain_ollama import ChatOllama
from langchain_core.messages import HumanMessage, SystemMessage
# 1. 初始化 Ollama 模型
# 确保 Ollama 已启动且模型已拉取:ollama pull maternion/hy-mt2:1.8b
llm = ChatOllama(model="maternion/hy-mt2:1.8b")
def translate_text(text, source_lang, target_lang):
if not text:
return ""
# 构建翻译提示词
system_prompt = f"你是一个专业的翻译助手。请将以下文本从{source_lang}翻译成{target_lang}。"
messages = [
SystemMessage(content=system_prompt),
HumanMessage(content=text)
]
# 调用模型
response = llm.invoke(messages)
return response.content
if __name__ == "__main__":
# 2. 构建 Gradio 界面
languages = ["中文", "英语", "日语", "韩语", "法语", "德语"]
with gr.Blocks() as demo:
gr.Markdown("## 腾讯混元翻译模型 (Hy-MT2)")
with gr.Row():
source_lang = gr.Dropdown(languages, label="源语言", value="韩语")
target_lang = gr.Dropdown(languages, label="目标语言", value="中文")
with gr.Row():
input_text = gr.TextArea(label="输入文本", lines=7, max_lines=20)
output_text = gr.TextArea(label="翻译结果", lines=7, max_lines=20, interactive=False)
btn = gr.Button("翻译")
btn.click(fn=translate_text, inputs=[input_text, source_lang, target_lang], outputs=output_text)
demo.launch()
更多推荐

所有评论(0)