👷♂️ Conversations: Re-organize conversation code [Part 1] #336
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Motivation
There's a bunch of conversation-related classes (eg. AIMessage, HumanMessage, ConversationMemory, etc.) that got added to
Langchain
root namespace. We should scope everything underLangchain::Conversation
namespace. And also simplify class naming.I personally don't think
AIMessage
andHumanMessage
are good names. What if it is a conversation between LLMs? ThanHumanMessage
doesn't really make sense. It is better to stick to Prompt/Response pattern in naming different message classes even though under the hood Prompt will be sending{role: 'user'}
to the API (that is an internal implementation so that's fine).Changes
lib/langchaing/conversation
directoryConversationMemory
=>Conversation::Memory
Message
=>Conversation::Message
HumanMessage
=>Conversation::Prompt
AIMessage
=>Conversation::Response
SystemMessage
=>Conversation::Context