'commit'
This commit is contained in:
@@ -27,6 +27,7 @@ client = AsyncOpenAI(
|
||||
# 初始化 ElasticSearch 工具
|
||||
search_util = EsSearchUtil(Config.ES_CONFIG)
|
||||
|
||||
|
||||
@router.post("/chat")
|
||||
async def chat(request: fastapi.Request):
|
||||
"""
|
||||
@@ -37,6 +38,8 @@ async def chat(request: fastapi.Request):
|
||||
data = await request.json()
|
||||
user_id = data.get('user_id', 'anonymous')
|
||||
query = data.get('query', '')
|
||||
type_id = data.get('type_id', '1') # 1-教学模式,2-对话模式
|
||||
yunxiao_sample = data.get('yunxiao_sample', False) # 是不是给长春云校做例子
|
||||
session_id = data.get('session_id', str(uuid.uuid4())) # 获取或生成会话ID
|
||||
include_history = data.get('include_history', True)
|
||||
|
||||
@@ -96,6 +99,9 @@ async def chat(request: fastapi.Request):
|
||||
for i, (user_msg, ai_msg) in enumerate(recent_history, 1):
|
||||
history_context += f"[对话 {i}] 用户: {user_msg}\n"
|
||||
history_context += f"[对话 {i}] 老师: {ai_msg}\n"
|
||||
if yunxiao_sample:
|
||||
with open(r"D:\dsWork\dsProject\dsLightRag\static\YunXiao.txt", "r", encoding="utf-8") as f:
|
||||
history_context += f"[讨论的内容] " + f.read() + "\n"
|
||||
|
||||
# 4. 构建学生信息上下文
|
||||
student_context = ""
|
||||
@@ -121,6 +127,9 @@ async def chat(request: fastapi.Request):
|
||||
最重要的是:不要直接给出答案,而是通过合作和基于学生已有知识的引导,帮助学生自己找到答案。
|
||||
"""
|
||||
|
||||
if type_id == 2:
|
||||
system_prompt = "你是一位具有丰富经验的K12教师,可以解答学生提出的各类问题。"
|
||||
|
||||
# 添加学生信息到系统提示词
|
||||
if user_id in search_util.student_info and search_util.student_info[user_id]:
|
||||
student_info_str = "\n\n学生基础信息:\n"
|
||||
@@ -171,7 +180,8 @@ async def chat(request: fastapi.Request):
|
||||
answer_tags = [f"{user_id}_answer", f"time:{current_time.split()[0]}", f"session:{session_id}"]
|
||||
try:
|
||||
seg_list = jieba.cut(answer_text, cut_all=False)
|
||||
answer_keywords = [kw for kw in seg_list if kw.strip() and kw not in search_util.STOPWORDS and len(kw) > 1]
|
||||
answer_keywords = [kw for kw in seg_list if
|
||||
kw.strip() and kw not in search_util.STOPWORDS and len(kw) > 1]
|
||||
answer_keywords = answer_keywords[:5]
|
||||
answer_tags.extend([f"keyword:{kw}" for kw in answer_keywords])
|
||||
except Exception as e:
|
||||
@@ -201,4 +211,3 @@ async def chat(request: fastapi.Request):
|
||||
except Exception as e:
|
||||
logger.error(f"聊天接口异常: {str(e)}")
|
||||
raise HTTPException(status_code=500, detail=f"处理请求失败: {str(e)}")
|
||||
|
||||
|
Binary file not shown.
Binary file not shown.
Binary file not shown.
47
dsLightRag/static/YunXiao.txt
Normal file
47
dsLightRag/static/YunXiao.txt
Normal file
@@ -0,0 +1,47 @@
|
||||
### 代数式与整式复习资料 一、代数式 1. 代数式的概念
|
||||
由数和字母用运算符号连接所成的式子称为代数式。特别的,单独的一个数或一个字母也是代数式。
|
||||
2. 代数式的书写规则
|
||||
- 如果式子中出现了乘号,通常写作点或者省略不写。
|
||||
- 数字与字母相乘时,常把数字放在字母的前面。
|
||||
- 如果出现了除法,通常写成分数的形式。 3. 列代数式示例
|
||||
- 某瓜子的单价为16元每千克,购买N千克:16N元。
|
||||
- 1500米跑步测试,某同学跑完全程的成绩是T秒,平均速度:1500/T 米每秒。
|
||||
- 练习本单价1元,圆珠笔单价2元,买A本练习本和B支圆珠笔的总价:A + 2B 元(带单位的相加或相减式子要用括号括起来)。 4. 代数式的值
|
||||
一般的,用数值来代替代数式中的字母,按照代数式中的运算关系,计算得出的结果,称为代数式的值。
|
||||
5. 代数式求值方法
|
||||
- 直接代入法:例如当A=2,B=-1,C=-30时,求B²-4AC的值,直接代入计算得25。
|
||||
- 整体代入法:例如若A²+2A-1=0,求2A²+4A-1的值,可由A²+2A=1,整体代入得2×1-1=1。 二、整式 1. 整式的相关概念
|
||||
- 整式:单项式和多项式统称为整式。
|
||||
- 单项式:由数和字母的乘积组成的代数式,单独的一个数或者一个字母也是单项式。
|
||||
- 单项式的次数:所有字母的指数和。
|
||||
- 单项式的系数:单项式中的数字因数(注意负号)。
|
||||
- 多项式:几个单项式的和。
|
||||
- 多项式的项:多项式中的每个单项式,不含字母的项叫做常数项。
|
||||
- 多项式的次数:多项式里次数最高项的次数。 2. 整式的加减运算
|
||||
- 同类项:所含字母相同,并且相同字母的指数也相同的项。
|
||||
- 合并同类项法则:系数相加减,字母和字母的指数保持不变。
|
||||
- 去括号法则:括号前是正号,去掉括号后各项不变号;括号前是负号,去掉括号后各项都变号。 3. 整式的乘法运算
|
||||
- 幂的运算:
|
||||
- 同底数幂相乘:底数不变,指数相加(a^m · a^n = a^(m+n))。
|
||||
- 幂的乘方:底数不变,指数相乘((a^m)^n = a^(mn))。
|
||||
- 积的乘方:各因式分别乘方,再把所得的幂相乘((ab)^n = a^n b^n)。
|
||||
- 单项式与单项式相乘:系数、相同字母的幂分别相乘,单独的字母连同指数作为积的因式。
|
||||
- 单项式与多项式相乘:用单项式去乘多项式中的每一项(m(a+b+c) = ma+mb+mc)。
|
||||
- 多项式与多项式相乘:用一个多项式中的每一项分别乘以另一个多项式中的每一项((m+n)(a+b) = ma+mb+na+nb)。 4. 乘法公式
|
||||
- 平方差公式:两数的和乘以这两数的差等于两数的平方差((a+b)(a-b) = a²-b²)。
|
||||
- 完全平方公式:两数的和(或差)的完全平方等于两数的平方和加上(或减去)它们乘积的二倍((a±b)² = a²±2ab+b²)。
|
||||
- 常见恒等变换:a²+b² = (a+b)²-2ab = (a-b)²+2ab;(a+b)² = (a-b)²+4ab。 5. 整式的除法运算
|
||||
- 同底数幂相除:底数不变,指数相减(a^m ÷ a^n = a^(m-n),a≠0)。
|
||||
- 单项式除以单项式:系数、相同字母的幂分别相除,单独的字母连同指数作为商的因式。
|
||||
- 多项式除以单项式:用多项式的每一项除以单项式,再把所得的商相加。 6. 因式分解
|
||||
- 定义:把一个多项式化成几个整式的乘积的形式(整式乘法的逆运算)。
|
||||
- 方法:
|
||||
- 提公因式法:如果多项式中含有相同的因式,提取出来(ma+mb+mc = m(a+b+c))。
|
||||
- 公式法:利用平方差公式(a²-b² = (a+b)(a-b))和完全平方公式(a²±2ab+b² = (a±b)²)进行分解。
|
||||
- 步骤:一提(提公因式)、二套(套公式)、三检验(分解到不能再分解为止)。 7. 因式分解示例
|
||||
- x³-9x = x(x²-9) = x(x+3)(x-3)
|
||||
- 16x⁴-1 = (4x²+1)(4x²-1) = (4x²+1)(2x+1)(2x-1)
|
||||
- -9x²y+6xy²-y³ = -y(9x²-6xy+y²) = -y(3x-y)²
|
||||
- (2a-b)²+8ab = 4a²-4ab+b²+8ab = 4a²+4ab+b² = (2a+b)²
|
||||
### 总结
|
||||
通过以上复习,应熟练掌握代数式的概念及求值方法,整式的相关概念,整式的加减、乘除运算,乘法公式的应用以及因式分解的方法和步骤。
|
@@ -23,6 +23,9 @@ MIN_QUERY_INTERVAL = 1
|
||||
last_query_time = 0
|
||||
|
||||
|
||||
# type_id = data.get('type_id', '1') # 1-教学模式,2-对话模式
|
||||
# yunxiao_sample = data.get('yunxiao_sample', False) # 是不是给长春云校做例子
|
||||
|
||||
def send_message(query):
|
||||
"""发送消息到聊天API并接收流式响应"""
|
||||
global last_query_time
|
||||
@@ -42,6 +45,8 @@ def send_message(query):
|
||||
"user_id": USER_ID,
|
||||
"query": query,
|
||||
"session_id": SESSION_ID,
|
||||
"type_id": 2,
|
||||
"yunxiao_sample": True,
|
||||
"include_history": True # 包含历史记录
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user