代码拉取完成,页面将自动刷新
# %%
from langchain_openai import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from dotenv import load_dotenv
import os
import logging
from langchain_core.chat_history import InMemoryChatMessageHistory, BaseChatMessageHistory
from langchain_core.runnables.history import RunnableWithMessageHistory
# %%
load_dotenv()
api_key = os.getenv('LMDEPLOY_API_KEY')
base_url = os.getenv('LMDEPLOY_BASE_URL')
model_name = os.getenv('LMDEPLOY_MODEL')
# %%
logger = logging.getLogger("LMDeploy Use Log")
logger_console = logging.StreamHandler()
logger.setLevel(logging.INFO)
logger_console.setLevel(logging.INFO)
formatter = logging.Formatter("%(asctime)s:%(message)s")
logger_console.setFormatter(formatter)
logger.addHandler(logger_console)
# %%
model = ChatOpenAI(api_key = api_key, base_url = base_url, model = model_name)
# %%
prompt = ChatPromptTemplate.from_messages(
[
('system', '你是一个超级无敌厉害的物理学家!你可以回答一切关于物理的问题!'),
('human', '{input}')
]
)
chain_qwen = prompt | model | StrOutputParser()
# %%
while True:
input_text = input()
if input_text == 'exit':
print("退出模型交互!")
break
response = chain_qwen.invoke({"input": input_text})
logger.info(f"Question:{input_text}")
logger.info(f"Answer:{response}")
'''
2025-08-21 13:55:04,841:Question:牛顿第一定律是什么
2025-08-21 13:55:04,843:Answer:牛顿第一定律,即惯性定律,由艾萨克·牛顿在1687年提出。它包括一个核心概念:物体总是保持其当前的运动状态,除非有外力作用于它。换句话说,如果你想要让一个物体保持静止或匀速直线运动,就要施加一个外力来改变它的运动状态。这表明了物体在没有外力作用的情况下,不会进行加速或减速,不会改变其运动状态,除非有外力在对其施加。牛顿第一定律是一个基本的物理概念,理解这个定律对于解决各种物理问题至关重要。
2025-08-21 13:55:15,761:Question:刚刚我问你的问题是什么
2025-08-21 13:55:15,763:Answer:我是一个虚拟的超级物理学家,没有物理能力,所以我无法回答关于物理的问题。我的目的是帮助人类理解科学和探索自然界的奥秘。
退出模型交互!
'''
# %%
store = {}
def get_session_history(session_id: str) -> BaseChatMessageHistory:
if session_id not in store:
store[session_id] = InMemoryChatMessageHistory()
return store[session_id]
# %%
with_message_history = RunnableWithMessageHistory(chain_qwen, get_session_history)
# input_messages_key="input"
config = {
"configurable": {"session_id": "11148"}
}
# %%
while True:
input_text = input()
if input_text == 'exit':
print("退出模型交互!")
break
response = with_message_history.invoke({"input": input_text}, config=config)
logger.info(f"Question:{input_text}")
logger.info(f"Answer:{response}")
'''
2025-08-21 13:53:33,597:Question:牛顿第一定律是什么?
2025-08-21 13:53:33,601:Answer:牛顿第一定律,也被称为惯性定律,是经典力学中的一个基本原理,它表明:如果一个物体不受外力作用,那么该物体将保持静止状态或者以恒定速度沿直线运动。换句话说,牛顿第一定律表明,没有外力作用,一个物体将保持其静止状态或者在匀速直线运动状态。这种定律是物理学的基础之一,广泛应用于工程、车辆设计和日常生活中的许多场景。
2025-08-21 13:54:01,558:Question:刚刚我问你的问题是什么
2025-08-21 13:54:01,560:Answer:刚刚你问我牛顿第一定律是什么?
退出模型交互!
'''
# %%
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。