Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
L
LAE
Overview
Overview
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
文靖昊
LAE
Commits
00bde14c
Commit
00bde14c
authored
a year ago
by
tinywell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
根据对话扩展新的问题
parent
12ecf38b
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
47 additions
and
4 deletions
+47
-4
prompts.py
src/config/prompts.py
+21
-0
get_similarity.py
src/server/get_similarity.py
+13
-1
rag_test.py
test/rag_test.py
+13
-3
No files found.
src/config/prompts.py
View file @
00bde14c
...
...
@@ -132,4 +132,24 @@ A: Laf 是一个云函数开发平台。
# 结合历史问答对话,生成新的提问,引导用户继续对话
PROMPT_QA_EXTEND_QUESTION
=
"""
作为一个问答助手,你的任务是结合历史记录,生成三个新的问题,引导用户继续对话。生成的问题要求与对话内容相关且指向对象清晰明确,并与“原问题语言相同”。例如:
历史记录:
'''
Q: 请用最简洁的描述介绍下 nginx
A: Nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件(IMAP/POP3)代理服务器。它以其高性能、稳定性、丰富的功能集、简单的配置以及低资源消耗而被广泛使用。
'''
新问题: ["请问 nginx 如何下载?","请问 nginx 适合哪些场景?","请问 nginx 的作者是谁?"]
----------------
历史纪录:
'''
Q: 请问 nginx 如何下载?
A: 你可以在 nginx 官网上下载 nginx。
'''
新问题: ["请问 nginx 的官网是那个?","请问 nginx 可以离线安装吗?","请问 nginx 如何安装?"]
----------------
历史记录:
'''
{histories}
'''
新问题:
"""
\ No newline at end of file
This diff is collapsed.
Click to expand it.
src/server/get_similarity.py
View file @
00bde14c
from
src.pgdb.knowledge.similarity
import
VectorStore_FAISS
from
src.config.prompts
import
PROMPT_QUERY_EXTEND
from
src.config.prompts
import
PROMPT_QUERY_EXTEND
,
PROMPT_QA_EXTEND_QUESTION
from
.rerank
import
BgeRerank
...
...
@@ -102,3 +102,14 @@ class QAExt:
history
+=
f
"Q: {msg[0]}
\n
A: {msg[1]}
\n
"
return
self
.
query_extend
.
invoke
(
input
=
{
"histories"
:
messages
,
"query"
:
question
})
class
ChatExtend
:
def
__init__
(
self
,
llm
)
->
None
:
self
.
llm
=
llm
prompt
=
PromptTemplate
.
from_template
(
PROMPT_QA_EXTEND_QUESTION
)
self
.
query_extend
=
prompt
|
llm
def
new_questions
(
self
,
messages
):
history
=
""
for
msg
in
messages
:
history
+=
f
"Q: {msg[0]}
\n
A: {msg[1]}
\n
"
return
self
.
query_extend
.
invoke
(
input
=
{
"histories"
:
history
})
\ No newline at end of file
This diff is collapsed.
Click to expand it.
test/rag_test.py
View file @
00bde14c
import
sys
sys
.
path
.
append
(
'../'
)
from
src.server.get_similarity
import
QAExt
from
src.server.get_similarity
import
QAExt
,
ChatExtend
from
langchain_openai
import
ChatOpenAI
...
...
@@ -26,5 +26,15 @@ def test_qaext():
print
(
result
.
content
)
def
test_chatextend
():
ext
=
ChatExtend
(
base_llm
)
message
=
[
(
"我们明天去爬山吧"
,
"好呀"
),
(
"天气怎么样"
,
"天气晴朗"
),
]
result
=
ext
.
new_questions
(
messages
=
message
)
print
(
result
.
content
)
if
__name__
==
"__main__"
:
pass
\ No newline at end of file
test_chatextend
()
\ No newline at end of file
This diff is collapsed.
Click to expand it.
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment