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.
Files changed (28) hide show
  1. bisheng_langchain/chains/__init__.py +4 -1
  2. bisheng_langchain/chains/qa_generation/__init__.py +0 -0
  3. bisheng_langchain/chains/qa_generation/base.py +128 -0
  4. bisheng_langchain/chains/qa_generation/base_v2.py +413 -0
  5. bisheng_langchain/chains/qa_generation/prompt.py +53 -0
  6. bisheng_langchain/chains/qa_generation/prompt_v2.py +155 -0
  7. bisheng_langchain/document_loaders/elem_unstrcutured_loader.py +36 -9
  8. bisheng_langchain/document_loaders/parsers/ellm_client.py +7 -9
  9. bisheng_langchain/document_loaders/universal_kv.py +4 -3
  10. bisheng_langchain/gpts/tools/api_tools/openapi.py +7 -7
  11. bisheng_langchain/rag/__init__.py +2 -0
  12. bisheng_langchain/rag/bisheng_rag_chain.py +164 -0
  13. bisheng_langchain/rag/bisheng_rag_pipeline_v2.py +8 -2
  14. bisheng_langchain/rag/bisheng_rag_tool.py +47 -24
  15. bisheng_langchain/rag/config/baseline_caibao_v2.yaml +1 -1
  16. bisheng_langchain/rag/config/baseline_v2.yaml +3 -2
  17. bisheng_langchain/rag/prompts/prompt.py +1 -1
  18. bisheng_langchain/rag/qa_corpus/qa_generator.py +1 -1
  19. bisheng_langchain/rag/scoring/ragas_score.py +2 -2
  20. bisheng_langchain/rag/utils.py +27 -4
  21. bisheng_langchain/sql/__init__.py +3 -0
  22. bisheng_langchain/sql/base.py +120 -0
  23. bisheng_langchain/text_splitter.py +1 -1
  24. {bisheng_langchain-0.3.1.1.dist-info → bisheng_langchain-0.3.2.dist-info}/METADATA +3 -1
  25. {bisheng_langchain-0.3.1.1.dist-info → bisheng_langchain-0.3.2.dist-info}/RECORD +27 -20
  26. bisheng_langchain/rag/bisheng_rag_pipeline_v2_cohere_raw_prompting.py +0 -376
  27. {bisheng_langchain-0.3.1.1.dist-info → bisheng_langchain-0.3.2.dist-info}/WHEEL +0 -0
  28. {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: 0
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: 0
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 ragas.trainset import TrainsetGenerator
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 ragas import evaluate
13
- from ragas.metrics import AnswerCorrectness, AnswerCorrectnessBisheng, AnswerRecallBisheng
12
+ from bisheng_ragas import evaluate
13
+ from bisheng_ragas.metrics import AnswerCorrectness, AnswerCorrectnessBisheng, AnswerRecallBisheng
14
14
 
15
15
 
16
16
  @dataclass
@@ -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': import_embedding,
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
- key = 'contribute' if name in chat_models.__all__ else 'chat' if 'chat' in name.lower(
64
- ) else 'llm'
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,3 @@
1
+ from bisheng_langchain.sql.base import SQLDatabaseChain
2
+
3
+ __all__ = ['SQLDatabaseChain']
@@ -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.1.1
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=OAD57cAxPfZoVeBTzicLycel4RehxMULi6Ebi2Wc0Rg,7909
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=oxN2tUMt_kNxKd_FzCQ7x8xIwojtdCNNKo-DI7q0unM,759
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=Dcu70Wz4vdUpq9y2vWPWroRdq6JrlOJNERoFTnZO0oU,5336
53
- bisheng_langchain/document_loaders/universal_kv.py,sha256=dJF_GQGKBMUjB_kX9CSp7xZRhXgwVuGPbMIzJwPh-C0,4063
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=B4Dea8xXXnGvB9j2OXv53HILNUmnWeNJz9ssNM-2fLM,1760
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=3MlIpzR_NhZogaA-zbH6fnT_KUMm10NnbtDYcxKedS8,3907
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=gGa3hx0HjA_11FxbnR3P0C0y_OwcZM-sYTHdAajmylk,102
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=FWmhOSLAKWqqhdj55Y6WoFJ5GYwK8fJdN3o-mqPmabI,15898
107
- bisheng_langchain/rag/bisheng_rag_pipeline_v2_cohere_raw_prompting.py,sha256=Gql3IXaSTtW8WaC7wLLid0TURXoF0hRqAgl3GAYBBCo,16816
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=ZR3BwjjLX4XT49aRDv-pf8Z4Mqcbmt2_qbDSwXfDfso,6361
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=WY9wek70eeBhhyiNmkfyrffxhTfBntqPyLMRmoqM_vE,2846
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=yUMlK9CbeIqIrb4iJj14BaqH7JJ15QdUIf1EHd7T_R8,2350
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=HPQ4mnMXDL9YsgBqK4S1M2sE6icq2uDL17KKgvEkovI,1925
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=ZdipOLBd16XfKXygq1JeUx4iv3tfUsprk1HNuC5hcIk,6092
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=ClVoRg1O7s5OMcsB2E5UbVHj_ErQ3WKr9hao8BcK6NA,7110
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.1.1.dist-info/METADATA,sha256=w35pNrjvRMzuCK3sSYIl0rP8Q4GL9kkAz5VELfEsVzI,2413
147
- bisheng_langchain-0.3.1.1.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
148
- bisheng_langchain-0.3.1.1.dist-info/top_level.txt,sha256=Z6pPNyCo4ihyr9iqGQbH8sJiC4dAUwA_mAyGRQB5_Fs,18
149
- bisheng_langchain-0.3.1.1.dist-info/RECORD,,
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,,