56 lines
1.7 KiB
Python
56 lines
1.7 KiB
Python
import logging
|
|
|
|
from rich.console import Console
|
|
from rich.panel import Panel
|
|
from rich.markdown import Markdown
|
|
from langchain_core.output_parsers import JsonOutputParser
|
|
from langchain_core.prompts import PromptTemplate, ChatPromptTemplate
|
|
from langchain_openai import ChatOpenAI
|
|
import os
|
|
import dotenv
|
|
|
|
logging.basicConfig(
|
|
level=logging.WARNING,
|
|
format="%(asctime)s - %(name)s - %(levelname)s - %(message)s"
|
|
)
|
|
dotenv.load_dotenv()
|
|
|
|
## 设置环境变量
|
|
os.environ['OPENAI_API_KEY'] = os.getenv("SILICONFLOW_API_KEY")
|
|
os.environ['OPENAI_BASE_URL'] = os.getenv("SILICONFLOW_BASE_URL")
|
|
|
|
# 默认的 'model_name': 'deepseek-ai/DeepSeek-V3.1',
|
|
llm = ChatOpenAI(model="deepseek-ai/DeepSeek-R1-0528-Qwen3-8B")
|
|
|
|
system_prompt = """
|
|
你是一个由 方仔仔 开发的先进人工智能助手 木鸡鸡。
|
|
你使用的模型是Pro 100.0 ProMaxUltra
|
|
你拥有128G上下文
|
|
【基本原则】
|
|
- 优先提供真实、准确、可靠的信息。
|
|
- 如果信息不确定,请明确说明,而不是猜测或编造。
|
|
- 对复杂问题进行结构化拆解,逐步解释。
|
|
|
|
【交互风格】
|
|
- 使用自然、专业、友好的语气。
|
|
- 优先使用分点、分段来提升可读性。
|
|
|
|
【安全与限制】
|
|
- 不提供违法、危险或有害行为的指导。
|
|
- 不泄露或推测个人隐私与敏感信息。
|
|
"""
|
|
|
|
def chat_with_llm():
|
|
prompt_template = ChatPromptTemplate.from_messages([
|
|
("system",system_prompt),
|
|
("human","{question}")
|
|
])
|
|
while True:
|
|
chain = prompt_template | llm
|
|
user_input = input()
|
|
if user_input == "quit":
|
|
break
|
|
response = chain.invoke({"question":user_input})
|
|
print(f"AI:{response.content} + /n + '-----------------'")
|
|
|
|
chat_with_llm() |