DOC: Need developer guide
Issue with current documentation:
The conceptual guide is high-level and the Python guide is based on examples, which are all good when we only want to use langchain. However, when we want to develop some components of langchain, say a new type of memory, I suddenly get lost in the source code. Take BaseMemory for example, what is the meaning of the four abstract methods:
-
memory_variables(): why do we need it? When is it used? It somehow relates toPromptTemplatebut how exactly? -
load_memory_variables(): why do we need it? When is it used? -
save_context: why do we need it? When is it used? -
clear: well this is trivial
Another example is LLMChain, when I tried to step into it, there are multiple layers of method calls to format prompts. About all of these, I think we need a developer guide to explain how and when each component is used and/or interacts with other components in the langchain implementation, not on the conceptual level.
Idea or request for content:
The conceptual guide is a great starting point I think. Instead of detailing it with examples (as in Python documentation), explain how the components work in the implementation. I think we can focus on how a prompt template is transformed into a concrete prompt and what the roles of the components are in the prompt transformation.