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
Jul 09, 2024
by
tinywell
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
根据对话扩展新的问题
parent
12ecf38b
Show 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 是一个云函数开发平台。
...
@@ -132,4 +132,24 @@ A: Laf 是一个云函数开发平台。
# 结合历史问答对话,生成新的提问,引导用户继续对话
# 结合历史问答对话,生成新的提问,引导用户继续对话
PROMPT_QA_EXTEND_QUESTION
=
"""
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
src/server/get_similarity.py
View file @
00bde14c
from
src.pgdb.knowledge.similarity
import
VectorStore_FAISS
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
from
.rerank
import
BgeRerank
...
@@ -102,3 +102,14 @@ class QAExt:
...
@@ -102,3 +102,14 @@ class QAExt:
history
+=
f
"Q: {msg[0]}
\n
A: {msg[1]}
\n
"
history
+=
f
"Q: {msg[0]}
\n
A: {msg[1]}
\n
"
return
self
.
query_extend
.
invoke
(
input
=
{
"histories"
:
messages
,
"query"
:
question
})
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
test/rag_test.py
View file @
00bde14c
import
sys
import
sys
sys
.
path
.
append
(
'../'
)
sys
.
path
.
append
(
'../'
)
from
src.server.get_similarity
import
QAExt
from
src.server.get_similarity
import
QAExt
,
ChatExtend
from
langchain_openai
import
ChatOpenAI
from
langchain_openai
import
ChatOpenAI
...
@@ -26,5 +26,15 @@ def test_qaext():
...
@@ -26,5 +26,15 @@ def test_qaext():
print
(
result
.
content
)
print
(
result
.
content
)
def
test_chatextend
():
ext
=
ChatExtend
(
base_llm
)
message
=
[
(
"我们明天去爬山吧"
,
"好呀"
),
(
"天气怎么样"
,
"天气晴朗"
),
]
result
=
ext
.
new_questions
(
messages
=
message
)
print
(
result
.
content
)
if
__name__
==
"__main__"
:
if
__name__
==
"__main__"
:
pass
test_chatextend
()
\ No newline at end of file
\ No newline at end of file
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