bisheng-langchain 0.3.1.1__py3-none-any.whl → 0.3.2__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- bisheng_langchain/chains/__init__.py +4 -1
- bisheng_langchain/chains/qa_generation/__init__.py +0 -0
- bisheng_langchain/chains/qa_generation/base.py +128 -0
- bisheng_langchain/chains/qa_generation/base_v2.py +413 -0
- bisheng_langchain/chains/qa_generation/prompt.py +53 -0
- bisheng_langchain/chains/qa_generation/prompt_v2.py +155 -0
- bisheng_langchain/document_loaders/elem_unstrcutured_loader.py +36 -9
- bisheng_langchain/document_loaders/parsers/ellm_client.py +7 -9
- bisheng_langchain/document_loaders/universal_kv.py +4 -3
- bisheng_langchain/gpts/tools/api_tools/openapi.py +7 -7
- bisheng_langchain/rag/__init__.py +2 -0
- bisheng_langchain/rag/bisheng_rag_chain.py +164 -0
- bisheng_langchain/rag/bisheng_rag_pipeline_v2.py +8 -2
- bisheng_langchain/rag/bisheng_rag_tool.py +47 -24
- bisheng_langchain/rag/config/baseline_caibao_v2.yaml +1 -1
- bisheng_langchain/rag/config/baseline_v2.yaml +3 -2
- bisheng_langchain/rag/prompts/prompt.py +1 -1
- bisheng_langchain/rag/qa_corpus/qa_generator.py +1 -1
- bisheng_langchain/rag/scoring/ragas_score.py +2 -2
- bisheng_langchain/rag/utils.py +27 -4
- bisheng_langchain/sql/__init__.py +3 -0
- bisheng_langchain/sql/base.py +120 -0
- bisheng_langchain/text_splitter.py +1 -1
- {bisheng_langchain-0.3.1.1.dist-info → bisheng_langchain-0.3.2.dist-info}/METADATA +3 -1
- {bisheng_langchain-0.3.1.1.dist-info → bisheng_langchain-0.3.2.dist-info}/RECORD +27 -20
- bisheng_langchain/rag/bisheng_rag_pipeline_v2_cohere_raw_prompting.py +0 -376
- {bisheng_langchain-0.3.1.1.dist-info → bisheng_langchain-0.3.2.dist-info}/WHEEL +0 -0
- {bisheng_langchain-0.3.1.1.dist-info → bisheng_langchain-0.3.2.dist-info}/top_level.txt +0 -0
@@ -13,6 +13,7 @@ elasticsearch:
|
|
13
13
|
ssl_verify:
|
14
14
|
basic_auth: ["elastic", "oSGL-zVvZ5P3Tm7qkDLC"]
|
15
15
|
drop_old: True
|
16
|
+
extract_key_by_llm: False
|
16
17
|
|
17
18
|
embedding:
|
18
19
|
type: 'OpenAIEmbeddings'
|
@@ -42,7 +43,7 @@ retriever:
|
|
42
43
|
# type: 'ElemCharacterTextSplitter'
|
43
44
|
type: 'RecursiveCharacterTextSplitter'
|
44
45
|
chunk_size: 1000
|
45
|
-
chunk_overlap:
|
46
|
+
chunk_overlap: 100
|
46
47
|
separators: ["\n\n"]
|
47
48
|
retrieval:
|
48
49
|
search_type: 'similarity'
|
@@ -54,7 +55,7 @@ retriever:
|
|
54
55
|
# type: 'ElemCharacterTextSplitter'
|
55
56
|
type: 'RecursiveCharacterTextSplitter'
|
56
57
|
chunk_size: 1000
|
57
|
-
chunk_overlap:
|
58
|
+
chunk_overlap: 100
|
58
59
|
separators: ["\n\n"]
|
59
60
|
retrieval:
|
60
61
|
search_type: 'similarity'
|
@@ -29,7 +29,7 @@ CHAT_PROMPT = ChatPromptTemplate.from_messages(messages)
|
|
29
29
|
|
30
30
|
|
31
31
|
system_template_general = """你是一个准确且可靠的知识库问答助手,能够借助上下文知识回答问题。你需要根据以下的规则来回答问题:
|
32
|
-
1.
|
32
|
+
1. 如果上下文中包含了正确答案,你需要根据上下文进行准确的回答。但是在回答前,你需要注意,上下文中的信息可能存在事实性错误,如果文档中存在和事实不一致的错误,请根据事实回答。
|
33
33
|
2. 如果上下文中不包含答案,就说你不知道,不要试图编造答案。
|
34
34
|
3. 你需要根据上下文给出详细的回答,不要试图偷懒,不要遗漏括号中的信息,你必须回答的尽可能详细。
|
35
35
|
"""
|
@@ -8,7 +8,7 @@ from tqdm import tqdm
|
|
8
8
|
from langchain.document_loaders import PyPDFLoader
|
9
9
|
from langchain_core.prompts import PromptTemplate
|
10
10
|
from bisheng_langchain.document_loaders import ElemUnstructuredLoader
|
11
|
-
from
|
11
|
+
from bisheng_ragas.trainset import TrainsetGenerator
|
12
12
|
|
13
13
|
|
14
14
|
prompt_template = """Use the following pieces of context to answer the question at the end. If you don't know the answer, just say that you don't know, don't try to make up an answer.
|
@@ -9,8 +9,8 @@ from typing import Any, Dict, List, Optional, Tuple, Union
|
|
9
9
|
import pandas as pd
|
10
10
|
from datasets import Dataset
|
11
11
|
from loguru import logger
|
12
|
-
from
|
13
|
-
from
|
12
|
+
from bisheng_ragas import evaluate
|
13
|
+
from bisheng_ragas.metrics import AnswerCorrectness, AnswerCorrectnessBisheng, AnswerRecallBisheng
|
14
14
|
|
15
15
|
|
16
16
|
@dataclass
|
bisheng_langchain/rag/utils.py
CHANGED
@@ -43,13 +43,17 @@ def import_by_type(_type: str, name: str) -> Any:
|
|
43
43
|
'llms': {
|
44
44
|
'llm': import_llm,
|
45
45
|
'chat': import_chat_llm,
|
46
|
-
'contribute': import_chain_contribute_llm
|
46
|
+
'contribute': import_chain_contribute_llm,
|
47
|
+
'chatopenai': import_chat_openai,
|
47
48
|
},
|
48
49
|
'tools': import_tool,
|
49
50
|
'chains': import_chain,
|
50
51
|
'toolkits': import_toolkit,
|
51
52
|
'memory': import_memory,
|
52
|
-
'embeddings':
|
53
|
+
'embeddings': {
|
54
|
+
'openaiembeddings': import_openai_embeddings,
|
55
|
+
'embeddings': import_embedding,
|
56
|
+
},
|
53
57
|
'vectorstores': import_vectorstore,
|
54
58
|
'documentloaders': import_documentloader,
|
55
59
|
'textsplitters': import_textsplitter,
|
@@ -60,8 +64,17 @@ def import_by_type(_type: str, name: str) -> Any:
|
|
60
64
|
'inputOutput': import_inputoutput,
|
61
65
|
}
|
62
66
|
if _type == 'llms':
|
63
|
-
|
64
|
-
|
67
|
+
if name.lower() == 'chatopenai':
|
68
|
+
key = 'chatopenai'
|
69
|
+
else:
|
70
|
+
key = 'contribute' if name in chat_models.__all__ else 'chat' if 'chat' in name.lower(
|
71
|
+
) else 'llm'
|
72
|
+
loaded_func = func_dict[_type][key] # type: ignore
|
73
|
+
elif _type == 'embeddings':
|
74
|
+
if name.lower() == 'openaiembeddings':
|
75
|
+
key = 'openaiembeddings'
|
76
|
+
else:
|
77
|
+
key = 'embeddings'
|
65
78
|
loaded_func = func_dict[_type][key] # type: ignore
|
66
79
|
else:
|
67
80
|
loaded_func = func_dict[_type]
|
@@ -129,6 +142,11 @@ def import_llm(llm: str) -> BaseLanguageModel:
|
|
129
142
|
return import_class(f'langchain.llms.{llm}')
|
130
143
|
|
131
144
|
|
145
|
+
def import_chat_openai(llm: str) -> BaseLanguageModel:
|
146
|
+
"""Import llm from llm name"""
|
147
|
+
return import_class(f'langchain_openai.{llm}')
|
148
|
+
|
149
|
+
|
132
150
|
def import_tool(tool: str) -> BaseTool:
|
133
151
|
"""Import tool from tool name"""
|
134
152
|
return import_class(f'langchain.tools.{tool}')
|
@@ -150,6 +168,11 @@ def import_embedding(embedding: str) -> Any:
|
|
150
168
|
return import_class(f'langchain.embeddings.{embedding}')
|
151
169
|
|
152
170
|
|
171
|
+
def import_openai_embeddings(embedding: str) -> Any:
|
172
|
+
"""Import embedding from embedding name"""
|
173
|
+
return import_class(f'langchain_openai.{embedding}')
|
174
|
+
|
175
|
+
|
153
176
|
def import_vectorstore(vectorstore: str) -> Any:
|
154
177
|
"""Import vectorstore from vectorstore name"""
|
155
178
|
from bisheng_langchain import vectorstores
|
@@ -0,0 +1,120 @@
|
|
1
|
+
"""Chain for interacting with SQL Database."""
|
2
|
+
from __future__ import annotations
|
3
|
+
|
4
|
+
from typing import Any, Dict, List, Optional
|
5
|
+
|
6
|
+
from langchain.callbacks.manager import AsyncCallbackManagerForChainRun, CallbackManagerForChainRun
|
7
|
+
from langchain.chains.llm import LLMChain
|
8
|
+
from langchain.prompts.prompt import PromptTemplate
|
9
|
+
from langchain.tools.sql_database.prompt import QUERY_CHECKER
|
10
|
+
from langchain_experimental.sql import SQLDatabaseChain as SQLDatabaseChainExperimental
|
11
|
+
|
12
|
+
INTERMEDIATE_STEPS_KEY = 'intermediate_steps'
|
13
|
+
|
14
|
+
|
15
|
+
class SQLDatabaseChain(SQLDatabaseChainExperimental):
|
16
|
+
"""Chain for interacting with SQL Database.
|
17
|
+
|
18
|
+
Example:
|
19
|
+
.. code-block:: python
|
20
|
+
|
21
|
+
from langchain_experimental.sql import SQLDatabaseChain
|
22
|
+
from langchain.llms import OpenAI, SQLDatabase
|
23
|
+
db = SQLDatabase(...)
|
24
|
+
db_chain = SQLDatabaseChain.from_llm(OpenAI(), db)
|
25
|
+
|
26
|
+
*Security note*: Make sure that the database connection uses credentials
|
27
|
+
that are narrowly-scoped to only include the permissions this chain needs.
|
28
|
+
Failure to do so may result in data corruption or loss, since this chain may
|
29
|
+
attempt commands like `DROP TABLE` or `INSERT` if appropriately prompted.
|
30
|
+
The best way to guard against such negative outcomes is to (as appropriate)
|
31
|
+
limit the permissions granted to the credentials used with this chain.
|
32
|
+
This issue shows an example negative outcome if these steps are not taken:
|
33
|
+
https://github.com/langchain-ai/langchain/issues/5923
|
34
|
+
"""
|
35
|
+
|
36
|
+
async def _acall(
|
37
|
+
self,
|
38
|
+
inputs: Dict[str, Any],
|
39
|
+
run_manager: Optional[AsyncCallbackManagerForChainRun] = None,
|
40
|
+
) -> Dict[str, Any]:
|
41
|
+
_run_manager = run_manager or CallbackManagerForChainRun.get_noop_manager()
|
42
|
+
input_text = f'{inputs[self.input_key]}\nSQLQuery:'
|
43
|
+
await _run_manager.on_text(input_text, verbose=self.verbose)
|
44
|
+
# If not present, then defaults to None which is all tables.
|
45
|
+
table_names_to_use = inputs.get('table_names_to_use')
|
46
|
+
table_info = self.database.get_table_info(table_names=table_names_to_use)
|
47
|
+
llm_inputs = {
|
48
|
+
'input': input_text,
|
49
|
+
'top_k': str(self.top_k),
|
50
|
+
'dialect': self.database.dialect,
|
51
|
+
'table_info': table_info,
|
52
|
+
'stop': ['\nSQLResult:'],
|
53
|
+
}
|
54
|
+
if self.memory is not None:
|
55
|
+
for k in self.memory.memory_variables:
|
56
|
+
llm_inputs[k] = inputs[k]
|
57
|
+
intermediate_steps: List = []
|
58
|
+
try:
|
59
|
+
intermediate_steps.append(llm_inputs.copy()) # input: sql generation
|
60
|
+
sql_cmd = await self.llm_chain.apredict(
|
61
|
+
callbacks=_run_manager.get_child(),
|
62
|
+
**llm_inputs,
|
63
|
+
)
|
64
|
+
sql_cmd = sql_cmd.strip()
|
65
|
+
if self.return_sql:
|
66
|
+
return {self.output_key: sql_cmd}
|
67
|
+
if not self.use_query_checker:
|
68
|
+
await _run_manager.on_text(sql_cmd, color='green', verbose=self.verbose)
|
69
|
+
intermediate_steps.append(sql_cmd) # output: sql generation (no checker)
|
70
|
+
intermediate_steps.append({'sql_cmd': sql_cmd}) # input: sql exec
|
71
|
+
result = self.database.run(sql_cmd)
|
72
|
+
intermediate_steps.append(str(result)) # output: sql exec
|
73
|
+
else:
|
74
|
+
query_checker_prompt = self.query_checker_prompt or PromptTemplate(
|
75
|
+
template=QUERY_CHECKER, input_variables=['query', 'dialect'])
|
76
|
+
query_checker_chain = LLMChain(llm=self.llm_chain.llm, prompt=query_checker_prompt)
|
77
|
+
query_checker_inputs = {
|
78
|
+
'query': sql_cmd,
|
79
|
+
'dialect': self.database.dialect,
|
80
|
+
}
|
81
|
+
checked_sql_command: str = await query_checker_chain.apredict(
|
82
|
+
callbacks=_run_manager.get_child(), **query_checker_inputs)
|
83
|
+
checked_sql_command = checked_sql_command.strip()
|
84
|
+
intermediate_steps.append(checked_sql_command) # output: sql generation (checker)
|
85
|
+
await _run_manager.on_text(checked_sql_command,
|
86
|
+
color='green',
|
87
|
+
verbose=self.verbose)
|
88
|
+
intermediate_steps.append({'sql_cmd': checked_sql_command}) # input: sql exec
|
89
|
+
result = self.database.run(checked_sql_command)
|
90
|
+
intermediate_steps.append(str(result)) # output: sql exec
|
91
|
+
sql_cmd = checked_sql_command
|
92
|
+
|
93
|
+
await _run_manager.on_text('\nSQLResult: ', verbose=self.verbose)
|
94
|
+
await _run_manager.on_text(result, color='yellow', verbose=self.verbose)
|
95
|
+
# If return direct, we just set the final result equal to
|
96
|
+
# the result of the sql query result, otherwise try to get a human readable
|
97
|
+
# final answer
|
98
|
+
if self.return_direct:
|
99
|
+
final_result = result
|
100
|
+
else:
|
101
|
+
await _run_manager.on_text('\nAnswer:', verbose=self.verbose)
|
102
|
+
input_text += f'{sql_cmd}\nSQLResult: {result}\nAnswer:'
|
103
|
+
llm_inputs['input'] = input_text
|
104
|
+
intermediate_steps.append(llm_inputs.copy()) # input: final answer
|
105
|
+
final_result = await self.llm_chain.apredict(
|
106
|
+
callbacks=_run_manager.get_child(),
|
107
|
+
**llm_inputs,
|
108
|
+
)
|
109
|
+
final_result = final_result.strip()
|
110
|
+
intermediate_steps.append(final_result) # output: final answer
|
111
|
+
await _run_manager.on_text(final_result, color='green', verbose=self.verbose)
|
112
|
+
chain_result: Dict[str, Any] = {self.output_key: final_result}
|
113
|
+
if self.return_intermediate_steps:
|
114
|
+
chain_result[INTERMEDIATE_STEPS_KEY] = intermediate_steps
|
115
|
+
return chain_result
|
116
|
+
except Exception as exc:
|
117
|
+
# Append intermediate steps to exception, to aid in logging and later
|
118
|
+
# improvement of few shot prompt seeds
|
119
|
+
exc.intermediate_steps = intermediate_steps # type: ignore
|
120
|
+
raise exc
|
@@ -163,7 +163,7 @@ class ElemCharacterTextSplitter(RecursiveCharacterTextSplitter):
|
|
163
163
|
searcher = IntervalSearch(indexes)
|
164
164
|
split_texts = self.split_text(text)
|
165
165
|
for chunk in split_texts:
|
166
|
-
new_metadata =
|
166
|
+
new_metadata = copy.deepcopy(metadatas[i])
|
167
167
|
index = text.find(chunk, index + 1)
|
168
168
|
inter0 = [index, index + len(chunk) - 1]
|
169
169
|
norm_inter = searcher.find(inter0)
|
@@ -1,6 +1,6 @@
|
|
1
1
|
Metadata-Version: 2.1
|
2
2
|
Name: bisheng-langchain
|
3
|
-
Version: 0.3.
|
3
|
+
Version: 0.3.2
|
4
4
|
Summary: bisheng langchain modules
|
5
5
|
Home-page: https://github.com/dataelement/bisheng
|
6
6
|
Author: DataElem
|
@@ -31,6 +31,8 @@ Requires-Dist: filetype ==1.2.0
|
|
31
31
|
Requires-Dist: langgraph ==0.0.30
|
32
32
|
Requires-Dist: openai ==1.14.3
|
33
33
|
Requires-Dist: langchain-openai ==0.1.0
|
34
|
+
Requires-Dist: llama-index ==0.9.48
|
35
|
+
Requires-Dist: bisheng-ragas ==1.0.0
|
34
36
|
|
35
37
|
## What is bisheng-langchain?
|
36
38
|
|
@@ -1,5 +1,5 @@
|
|
1
1
|
bisheng_langchain/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
2
|
-
bisheng_langchain/text_splitter.py,sha256=
|
2
|
+
bisheng_langchain/text_splitter.py,sha256=8snY_Fojh-A1EEGXBSEqCh0N77KQc_dqsgeptAlf344,7934
|
3
3
|
bisheng_langchain/agents/__init__.py,sha256=ctsKj77fS8qlkhz_9sS_AhCjFvFNxEpJ9KBYVrApLRg,226
|
4
4
|
bisheng_langchain/agents/chatglm_functions_agent/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
5
5
|
bisheng_langchain/agents/chatglm_functions_agent/base.py,sha256=tyytq0XIFXpfxDP0s5QKeprKOunMqi1fHMfQ0-kOmDE,13674
|
@@ -12,7 +12,7 @@ bisheng_langchain/autogen_role/assistant.py,sha256=rqUaD6fbW6d1jtzfrUQv5pJMKJgVG
|
|
12
12
|
bisheng_langchain/autogen_role/custom.py,sha256=vAyEGxnmV9anyLL12v4ZB_A2VOPwdl-kjGP037I8jPw,2464
|
13
13
|
bisheng_langchain/autogen_role/groupchat_manager.py,sha256=AybsH3duoAFpo3bojOYVeSOE4iYkkbgmYIga6m2Jj_Y,2234
|
14
14
|
bisheng_langchain/autogen_role/user.py,sha256=fbaORhC7oQjxGhc2RYIWpELdIogFBsgqgQUhZsK6Osk,5715
|
15
|
-
bisheng_langchain/chains/__init__.py,sha256=
|
15
|
+
bisheng_langchain/chains/__init__.py,sha256=Qr71zsX0yO8RMtn2EWEtxI_NRiLlLqgn1mbPumT3vag,960
|
16
16
|
bisheng_langchain/chains/loader_output.py,sha256=02ZercAFaudStTZ4t7mcVkGRj5pD78HZ6NO8HbmbDH8,1903
|
17
17
|
bisheng_langchain/chains/transform.py,sha256=G2fMqoMB62e03ES--aoVjEo06FzYWb87jCt3EOsiwwg,2805
|
18
18
|
bisheng_langchain/chains/autogen/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -21,6 +21,11 @@ bisheng_langchain/chains/combine_documents/__init__.py,sha256=47DEQpj8HBSa-_TImW
|
|
21
21
|
bisheng_langchain/chains/combine_documents/stuff.py,sha256=z_E_wfhJrAYWcNVRPomPm5fGRDI3hqoC52wcMzgzxVA,2369
|
22
22
|
bisheng_langchain/chains/conversational_retrieval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
23
23
|
bisheng_langchain/chains/conversational_retrieval/base.py,sha256=XiqBqov6No-wTVCou6qyMT5p2JQgoQI7OLQOYH8XUos,5313
|
24
|
+
bisheng_langchain/chains/qa_generation/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
25
|
+
bisheng_langchain/chains/qa_generation/base.py,sha256=VYGmLDB0bnlDQ6T8ivLP55wwFbMo9HOzlPEDUuRx5fU,4148
|
26
|
+
bisheng_langchain/chains/qa_generation/base_v2.py,sha256=v16zyj1-f17SpibREyO1gz0b7FdJDyTOYmqV1FVFFbY,13839
|
27
|
+
bisheng_langchain/chains/qa_generation/prompt.py,sha256=4eJk9aDUYDN1qaaYRPy9EobCIncnwS8BbQaDFzzePtM,1944
|
28
|
+
bisheng_langchain/chains/qa_generation/prompt_v2.py,sha256=sQLanA_iOnLqrUIwzfTOTANt-1vJ44CM54HFDU8Jo1Q,8938
|
24
29
|
bisheng_langchain/chains/question_answering/__init__.py,sha256=_gOZMc-SWprK6xc-Jj64jcr9nc-G4YkZbEYwfJNq_bY,8795
|
25
30
|
bisheng_langchain/chains/retrieval/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
26
31
|
bisheng_langchain/chains/retrieval/retrieval_chain.py,sha256=7VLJ-IPVjKfmAVgVET4cvKCO9DCMxwsGgVhW-wz5RZM,3050
|
@@ -49,10 +54,10 @@ bisheng_langchain/document_loaders/custom_kv.py,sha256=xWUPhcr1hjbdya4zgEHG4Fl0s
|
|
49
54
|
bisheng_langchain/document_loaders/elem_html.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
50
55
|
bisheng_langchain/document_loaders/elem_image.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
51
56
|
bisheng_langchain/document_loaders/elem_pdf.py,sha256=K-TXILGNFLFjavhun_MFbUF4t2_WGA3Z-kbnr75lmW8,22243
|
52
|
-
bisheng_langchain/document_loaders/elem_unstrcutured_loader.py,sha256=
|
53
|
-
bisheng_langchain/document_loaders/universal_kv.py,sha256=
|
57
|
+
bisheng_langchain/document_loaders/elem_unstrcutured_loader.py,sha256=ODAveZ1Rbq9SOO_qyIgH_NL8L2QqUZXOqf3wCKGYaRE,6984
|
58
|
+
bisheng_langchain/document_loaders/universal_kv.py,sha256=ZdIgFIc2fH2kkvJNb7j2wi6FLS_PaaatVy6z_YNV2hw,4114
|
54
59
|
bisheng_langchain/document_loaders/parsers/__init__.py,sha256=OOM_FJkwaU-zNS58fASw0TH8FNT6VXKb0VrvisgdrII,171
|
55
|
-
bisheng_langchain/document_loaders/parsers/ellm_client.py,sha256=
|
60
|
+
bisheng_langchain/document_loaders/parsers/ellm_client.py,sha256=Y_CRYwBr-gFArOirF1b76KyI5N8eVpsLeDiIsKtYkpU,1641
|
56
61
|
bisheng_langchain/document_loaders/parsers/image.py,sha256=7Vx4dD_WiSTojS4TMIJFxfE8nvze0kwNnwTd6f1cLds,938
|
57
62
|
bisheng_langchain/document_loaders/parsers/ocr_client.py,sha256=rRh1coJYn24n7FaINBZH5yO6Edm9TRywY6UOXpcerVo,1612
|
58
63
|
bisheng_langchain/document_loaders/parsers/test_image.py,sha256=EJHozq5oFfLBlLL5Lr6XFkrkvSttPpohprs9OjDzAKM,8685
|
@@ -85,7 +90,7 @@ bisheng_langchain/gpts/tools/api_tools/__init__.py,sha256=CkEjgIFM4GIv86V1B7SsFL
|
|
85
90
|
bisheng_langchain/gpts/tools/api_tools/base.py,sha256=fWQSDIOVb4JZrtJ9ML9q2ycsAa-_61gXTD0MT19J1LM,3618
|
86
91
|
bisheng_langchain/gpts/tools/api_tools/flow.py,sha256=ot2YAYgQGWgUpb2nCECAmpqHY6m0SgzwkupF9kDT3lU,2461
|
87
92
|
bisheng_langchain/gpts/tools/api_tools/macro_data.py,sha256=FyG-qtl2ECS1CDKt6olN0eDTDM91d-UvDkMDBiVLgYQ,27429
|
88
|
-
bisheng_langchain/gpts/tools/api_tools/openapi.py,sha256=
|
93
|
+
bisheng_langchain/gpts/tools/api_tools/openapi.py,sha256=CzKt9FRkgngBcWgabD4emPqAXkAgagkD-pMjG680MTE,3903
|
89
94
|
bisheng_langchain/gpts/tools/api_tools/sina.py,sha256=GGA4ZYvNEpqBZ_l8MUYqgkI8xZe9XcGa9-KlHZVqr6I,9542
|
90
95
|
bisheng_langchain/gpts/tools/api_tools/tianyancha.py,sha256=abDAz-yAH1-2rKiSmZ6TgnrNUnpgAZpDY8oDiWfWapc,6684
|
91
96
|
bisheng_langchain/gpts/tools/bing_search/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
@@ -101,22 +106,22 @@ bisheng_langchain/gpts/tools/get_current_time/tool.py,sha256=3uvk7Yu07qhZy1sBrFM
|
|
101
106
|
bisheng_langchain/input_output/__init__.py,sha256=sW_GB7MlrHYsqY1Meb_LeimQqNsMz1gH-00Tqb2BUyM,153
|
102
107
|
bisheng_langchain/input_output/input.py,sha256=I5YDmgbvvj1o2lO9wi8LE37wM0wP5jkhUREU32YrZMQ,1094
|
103
108
|
bisheng_langchain/input_output/output.py,sha256=6U-az6-Cwz665C2YmcH3SYctWVjPFjmW8s70CA_qphk,11585
|
104
|
-
bisheng_langchain/rag/__init__.py,sha256=
|
109
|
+
bisheng_langchain/rag/__init__.py,sha256=Rm_cDxOJINt0H4bOeUo3JctPxaI6xKKXZcS-R_wkoGs,198
|
110
|
+
bisheng_langchain/rag/bisheng_rag_chain.py,sha256=pbvaLuAwBWyGyvi0qBcqrOz9HScEPfpfEE9GWobVv-M,5891
|
105
111
|
bisheng_langchain/rag/bisheng_rag_pipeline.py,sha256=neoBK3TtuQ07_WeuJCzYlvtsDQNepUa_68NT8VCgytw,13749
|
106
|
-
bisheng_langchain/rag/bisheng_rag_pipeline_v2.py,sha256=
|
107
|
-
bisheng_langchain/rag/
|
108
|
-
bisheng_langchain/rag/bisheng_rag_tool.py,sha256=X7mhqYHapLlqfpu90BaW-C3aDeW_PENIci9lNyQv-tI,11971
|
112
|
+
bisheng_langchain/rag/bisheng_rag_pipeline_v2.py,sha256=iOoF7mbLp9qDGPsV0fEmgph_Ba8VnECYvCPebXk8xmo,16144
|
113
|
+
bisheng_langchain/rag/bisheng_rag_tool.py,sha256=8M59rQqUGS7b1GH_pjNwcqJa2HikK3B4ZqWl59ZCUJY,13113
|
109
114
|
bisheng_langchain/rag/extract_info.py,sha256=emrdvzU9EfdTQU_IBF4RkwaTXmYLk1MOJgdfYhw6VtA,1753
|
110
115
|
bisheng_langchain/rag/run_qa_gen_web.py,sha256=-fIvHNnD3lD0iNU5m0Me1GDwRjlcsB8tE5RnPtFRG2s,1840
|
111
116
|
bisheng_langchain/rag/run_rag_evaluate_web.py,sha256=a9vMhq-ZhEiHHr43uKUzKtjdk280uAP_UHQW_eOaQMw,2224
|
112
|
-
bisheng_langchain/rag/utils.py,sha256=
|
117
|
+
bisheng_langchain/rag/utils.py,sha256=ecl4sDR8iUrVCBRPAAT0hZOHkH50-TLS3567GLP1sRM,7122
|
113
118
|
bisheng_langchain/rag/config/baseline.yaml,sha256=cFkfVpuNtmexYkQxXbqbcqQ4eDhx81kmIXf8T_rc_Oo,2266
|
114
119
|
bisheng_langchain/rag/config/baseline_caibao.yaml,sha256=uU2HSlPXB8uLq9Fh03wENs06STdMA9CS6ry3X-Wkn-E,2174
|
115
120
|
bisheng_langchain/rag/config/baseline_caibao_knowledge_v2.yaml,sha256=KrkMmHu-myQ8u4FlydXLwsppD4ucQGAYYtGGA0HCJzE,2812
|
116
|
-
bisheng_langchain/rag/config/baseline_caibao_v2.yaml,sha256=
|
121
|
+
bisheng_langchain/rag/config/baseline_caibao_v2.yaml,sha256=0bliqbC8nDK9M24TdSlSsJL0PHRNRGKM8XInZVjJ8yw,2845
|
117
122
|
bisheng_langchain/rag/config/baseline_demo_v2.yaml,sha256=hCa7bZMCcOWpu6bsAFX4DU1b7MV4eN2phyzvZzFZKkU,2382
|
118
123
|
bisheng_langchain/rag/config/baseline_s2b_mix.yaml,sha256=rkPfzU2-mvjRrZ0zMHaQsncPhq8DrdvVFsw4Sg_jeKc,2398
|
119
|
-
bisheng_langchain/rag/config/baseline_v2.yaml,sha256=
|
124
|
+
bisheng_langchain/rag/config/baseline_v2.yaml,sha256=RP-DwIRIS_ZK8ixbXi2Z28rKqHD56pWmr2o2WWIwq3Y,2382
|
120
125
|
bisheng_langchain/rag/init_retrievers/__init__.py,sha256=qpLLAuqZPtumTlJj17Ie5AbDDmiUiDxYefg_pumqu-c,218
|
121
126
|
bisheng_langchain/rag/init_retrievers/baseline_vector_retriever.py,sha256=oRKZZpxlLQAtsubIcAXeXpf1a9h6Pt6uOtNTLeD2jps,2362
|
122
127
|
bisheng_langchain/rag/init_retrievers/keyword_retriever.py,sha256=NRT0fBx6HFR7j9IbRl_NBuqF7hnL-9v5GCqHpgnrfPQ,2523
|
@@ -124,26 +129,28 @@ bisheng_langchain/rag/init_retrievers/mix_retriever.py,sha256=Whxq4kjNPLsxnHcVo6
|
|
124
129
|
bisheng_langchain/rag/init_retrievers/smaller_chunks_retriever.py,sha256=RQ7QLEOOhBrkw-EimXVJqIGa96D-KkNDik2h9hzg9fU,3805
|
125
130
|
bisheng_langchain/rag/prompts/__init__.py,sha256=IUCq9gzqGQN_6IDk0D_F5t3mOUI_KbmSzYnnXoX4VKE,223
|
126
131
|
bisheng_langchain/rag/prompts/extract_key_prompt.py,sha256=THdcwolRzaKkddgEhabUDytn-caHs9UwECPkPxijWAs,1456
|
127
|
-
bisheng_langchain/rag/prompts/prompt.py,sha256=
|
132
|
+
bisheng_langchain/rag/prompts/prompt.py,sha256=VdRJ5V8zysFALPwA1Ge98aLmk6hnuySegVtL6twMJaI,1916
|
128
133
|
bisheng_langchain/rag/prompts/prompt_cohere.py,sha256=FhW-RCIVnIfKtEqV_-7aQav1riIJmA0jV2hGxCSoysk,8151
|
129
134
|
bisheng_langchain/rag/qa_corpus/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
130
|
-
bisheng_langchain/rag/qa_corpus/qa_generator.py,sha256=
|
135
|
+
bisheng_langchain/rag/qa_corpus/qa_generator.py,sha256=M8B739ZwwTfF1HXlfTss_pGH38KncJoL9xU0OvEGKCA,6100
|
131
136
|
bisheng_langchain/rag/rerank/__init__.py,sha256=lcMRa_o5HGNnN9Hn6zHCimYq02OuD9pRAg6eFPZNgR8,72
|
132
137
|
bisheng_langchain/rag/rerank/rerank.py,sha256=RoEwFFb4t4l0aZQmE2-HHHfWIzNLKe9NuFDIoYoWz5g,1836
|
133
138
|
bisheng_langchain/rag/rerank/rerank_benchmark.py,sha256=OU9bh7dQ0-faw4hpz6BPEtmbQEhISTekvRiWpksOfCc,4490
|
134
139
|
bisheng_langchain/rag/scoring/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
135
140
|
bisheng_langchain/rag/scoring/llama_index_score.py,sha256=Xh8YFT14JGxE3OL2x4JSRa8nGlOK5DlWlsrzbmA2gu8,3001
|
136
|
-
bisheng_langchain/rag/scoring/ragas_score.py,sha256=
|
141
|
+
bisheng_langchain/rag/scoring/ragas_score.py,sha256=yiF0O1Wo-yR-aQMpEoK0Je2iln6KYF3xDK5bfADE17Y,7126
|
137
142
|
bisheng_langchain/retrievers/__init__.py,sha256=XqBeNyPyNCJf-SzNBiFlkxtjrtHUFTTi5pe2yPyOKrA,210
|
138
143
|
bisheng_langchain/retrievers/ensemble.py,sha256=umjBaZYBEdhJ2F7GlzQgXVLYjSfpybTptiJJbUgryZE,5975
|
139
144
|
bisheng_langchain/retrievers/mix_es_vector.py,sha256=dSrrsuMPSgGiu181EOzACyIKiDXR0qNBQz_914USD3E,4465
|
145
|
+
bisheng_langchain/sql/__init__.py,sha256=2arRtNQ-kUvIsy_8v_PrLxf5r9W-S7mbqptG_l4_1RE,88
|
146
|
+
bisheng_langchain/sql/base.py,sha256=WNHCy16UoxvDbroHnJq8CsZ9ot4NGflCm8Bgiv45kks,6152
|
140
147
|
bisheng_langchain/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
141
148
|
bisheng_langchain/utils/requests.py,sha256=vWGKyNTxApVeaVdKxqACfIT1Q8wMy-jC3kUv2Ce9Mzc,8688
|
142
149
|
bisheng_langchain/vectorstores/__init__.py,sha256=zCZgDe7LyQ0iDkfcm5UJ5NxwKQSRHnqrsjx700Fy11M,213
|
143
150
|
bisheng_langchain/vectorstores/elastic_keywords_search.py,sha256=Pm1rS50GJ0HWbjBsFDgs28SVuVbjGSRPOor6yJlnE7w,13347
|
144
151
|
bisheng_langchain/vectorstores/milvus.py,sha256=lrnezKnYXhyH5M1g3a-Mcwpj9mwzAj44TKmzyUXlQYY,36297
|
145
152
|
bisheng_langchain/vectorstores/retriever.py,sha256=hj4nAAl352EV_ANnU2OHJn7omCH3nBK82ydo14KqMH4,4353
|
146
|
-
bisheng_langchain-0.3.
|
147
|
-
bisheng_langchain-0.3.
|
148
|
-
bisheng_langchain-0.3.
|
149
|
-
bisheng_langchain-0.3.
|
153
|
+
bisheng_langchain-0.3.2.dist-info/METADATA,sha256=IN1a5Tj7493QanbJRMZ3Tv8swHLKl2s_X9risUMJhfs,2484
|
154
|
+
bisheng_langchain-0.3.2.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
|
155
|
+
bisheng_langchain-0.3.2.dist-info/top_level.txt,sha256=Z6pPNyCo4ihyr9iqGQbH8sJiC4dAUwA_mAyGRQB5_Fs,18
|
156
|
+
bisheng_langchain-0.3.2.dist-info/RECORD,,
|