大模型私有化部署(二)
1.安装本地python环境python版本大于3.11pip install langchain_openai pip install langchain_community pip install gradio2.引用服务器布置的大模型llm ChatOpenAI( modelqwen3-8b, temperature0.8, api_keyxx, base_urlhttp://127.0.0.1:6006/v1, extra_body{chat_template_kwargs: {enable_thinking: False}}, )3.创建带聊天记录的大模型处理链prompt ChatPromptTemplate.from_messages([ (system, {system_message}), MessagesPlaceholder(variable_namechat_history, optionalTrue), (human, {input}) ]) chain prompt | llm def get_session_history(session_id: str): return SQLChatMessageHistory( session_idsession_id, connection_stringsqlite:///chat_history.db, )4.对历史记录进行剪辑只保留最新的两条历史记录其余的使用大模型进行总结概述压缩def summarize_messages(current_input): session_id current_input[config][configurable][session_id] if not session_id: raise ValueError(必须通过config参数提供session_id) chat_history get_session_history(session_id) stored_messages chat_history.messages if len(stored_messages) 2: return {original_messages: stored_messages, summary: None} last_two_messages stored_messages[-2:] messages_to_summarize stored_messages[:-2] summarization_prompt ChatPromptTemplate.from_messages([ (system, 请将以下对话历史压缩为一条保留关键信息的摘要消息。), (placeholder, {chat_history}), (human, 请生成包含上述对话核心内容的摘要保留重要事实和决策。) ]) summarization_chain summarization_prompt | llm summary_message summarization_chain.invoke({chat_history: messages_to_summarize}) return { original_messages: last_two_messages, summary: summary_message } final_chain (RunnablePassthrough.assign(messages_summarizedsummarize_messages)5.编写图形界面def add_message(chat_history, user_message): if user_message: chat_history.append({role: user, content: user_message}) return chat_history, gr.Textbox(valueNone, interactiveFalse) def execute_chain(chat_history): input chat_history[-1] result final_chain.invoke({input: input[content], config: {configurable: {session_id: user123}}}, config{configurable: {session_id: user123}},callbacksNone)chat_history.append({role: assistant, content: result.content}) return chat_history with gr.Blocks(title本地大模型, themegr.themes.Soft()) as block: chatbot gr.Chatbot(height600, label大模型智能助手) with gr.Row(): with gr.Column(scale5): user_input gr.Textbox(placeholder请给机器人发送消息..., label文字输入, max_lines5) submit_btn gr.Button(发送, variantprimary) chat_msg user_input.submit(add_message, [chatbot, user_input], [chatbot, user_input]) chat_msg.then(execute_chain, chatbot, chatbot).then( lambda: gr.MultimodalTextbox(interactiveTrue), None, [user_input] )6.执行脚本文件7.浏览器打开http://127.0.0.1:7860即可使用本地部署好的大模型啦
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2503129.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!