chatflock.use_cases.bshr

Module Contents

class chatflock.use_cases.bshr.BHSRState

Bases: pydantic.BaseModel

information_need: str | None = None
queries_to_run: List[str] | None = None
answers_to_queries: Dict[str, str] | None = None
current_hypothesis: str | None = None
proposed_hypothesis: str | None = None
feedback: str | None = None
is_satisficed: bool | None = None
chatflock.use_cases.bshr.save_state(state, state_file)
Parameters:
Return type:

None

chatflock.use_cases.bshr.load_state(state_file)
Parameters:

state_file (Optional[str])

Return type:

Optional[BHSRState]

class chatflock.use_cases.bshr.QueryGenerationResult

Bases: pydantic.BaseModel

information_need: str
queries: List[str]
class chatflock.use_cases.bshr.HypothesisGenerationResult

Bases: pydantic.BaseModel

hypothesis: str
class chatflock.use_cases.bshr.SatisficationCheckResult

Bases: pydantic.BaseModel

feedback: str
is_satisficed: bool
chatflock.use_cases.bshr.generate_queries(state, chat_model, interactive_user=True, max_queries=10, shared_sections=None, web_search_tool=None, spinner=None)
Parameters:
  • state (BHSRState)

  • chat_model (langchain.chat_models.base.BaseChatModel)

  • interactive_user (bool)

  • max_queries (int)

  • shared_sections (Optional[List[chatflock.structured_string.Section]])

  • web_search_tool (Optional[langchain.tools.BaseTool])

  • spinner (Optional[halo.Halo])

Return type:

None

chatflock.use_cases.bshr.search_queries(state, web_search, n_search_results=3, spinner=None)
Parameters:
  • state (BHSRState)

  • web_search (chatflock.web_research.WebSearch)

  • n_search_results (int)

  • spinner (Optional[halo.Halo])

Return type:

Generator[BHSRState, None, None]

chatflock.use_cases.bshr.generate_hypothesis(state, chat_model, shared_sections=None, spinner=None)
Parameters:
Return type:

None

chatflock.use_cases.bshr.check_satisficing(state, chat_model, shared_sections=None, spinner=None)
Parameters:
Return type:

None

chatflock.use_cases.bshr.brainstorm_search_hypothesize_refine(web_search, chat_model, initial_state=None, n_search_results=3, state_file=None, spinner=None)
Parameters:
  • web_search (chatflock.web_research.WebSearch)

  • chat_model (langchain.chat_models.base.BaseChatModel)

  • initial_state (Optional[BHSRState])

  • n_search_results (int)

  • state_file (Optional[str])

  • spinner (Optional[halo.Halo])

Return type:

BHSRState

chatflock.use_cases.bshr.run_brainstorm_search_hypothesize_refine_loop(web_search, chat_model, n_search_results=3, initial_state=None, state_file=None, confirm_satisficed=False, spinner=None)
Parameters:
  • web_search (chatflock.web_research.WebSearch)

  • chat_model (langchain.chat_models.base.BaseChatModel)

  • n_search_results (int)

  • initial_state (Optional[BHSRState])

  • state_file (Optional[str])

  • confirm_satisficed (bool)

  • spinner (Optional[halo.Halo])

Return type:

str

class chatflock.use_cases.bshr.BrainstormSearchHypothesizeRefineToolArgs

Bases: pydantic.BaseModel

query: str
chatflock.use_cases.bshr.TArgSchema
class chatflock.use_cases.bshr.BrainstormSearchHypothesizeRefineTool

Bases: langchain.tools.BaseTool, Generic[TArgSchema]

Abstract base class for generic types.

A generic type is typically declared by inheriting from this class parameterized with one or more type variables. For example, a generic mapping type might be defined as:

class Mapping(Generic[KT, VT]):
    def __getitem__(self, key: KT) -> VT:
        ...
    # Etc.

This class can then be used as follows:

def lookup_name(mapping: Mapping[KT, VT], key: KT, default: VT) -> VT:
    try:
        return mapping[key]
    except KeyError:
        return default
chat_model: langchain.chat_models.base.BaseChatModel
n_results: int = 3
state_file: str | None = None
spinner: halo.Halo | None = None
name: str = 'web_research'
description: str = "Research the web using a Brainstorm-Search-Hypothesize-Refine approach. Use that to get a very...
args_schema: Type[TArgSchema]
progress_text: str = 'Researching the topic (this may take a while)...'
_run(query, run_manager=None, **kwargs)
Parameters:
  • query (str)

  • run_manager (Optional[langchain.callbacks.manager.CallbackManagerForToolRun])

  • kwargs (Any)

Return type:

Any