mirror of
https://github.com/hwchase17/langchain.git
synced 2025-06-04 06:03:31 +00:00
Import from core instead. Ran: ```bash git grep -l 'from langchain.schema\.output_parser' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.output_parser/from\ langchain_core.output_parsers/g" git grep -l 'from langchain.schema\.messages' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.messages/from\ langchain_core.messages/g" git grep -l 'from langchain.schema\.document' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.document/from\ langchain_core.documents/g" git grep -l 'from langchain.schema\.runnable' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.runnable/from\ langchain_core.runnables/g" git grep -l 'from langchain.schema\.vectorstore' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.vectorstore/from\ langchain_core.vectorstores/g" git grep -l 'from langchain.schema\.language_model' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.language_model/from\ langchain_core.language_models/g" git grep -l 'from langchain.schema\.embeddings' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.embeddings/from\ langchain_core.embeddings/g" git grep -l 'from langchain.schema\.storage' | xargs -L 1 sed -i '' "s/from\ langchain\.schema\.storage/from\ langchain_core.stores/g" git checkout master libs/langchain/tests/unit_tests/schema/ make format cd libs/experimental make format cd ../langchain make format ```
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
from typing import Any, Dict, List
|
|
|
|
from langchain.memory.chat_memory import BaseChatMemory, get_prompt_input_key
|
|
from langchain_core.vectorstores import VectorStoreRetriever
|
|
|
|
from langchain_experimental.pydantic_v1 import Field
|
|
|
|
|
|
class AutoGPTMemory(BaseChatMemory):
|
|
"""Memory for AutoGPT."""
|
|
|
|
retriever: VectorStoreRetriever = Field(exclude=True)
|
|
"""VectorStoreRetriever object to connect to."""
|
|
|
|
@property
|
|
def memory_variables(self) -> List[str]:
|
|
return ["chat_history", "relevant_context"]
|
|
|
|
def _get_prompt_input_key(self, inputs: Dict[str, Any]) -> str:
|
|
"""Get the input key for the prompt."""
|
|
if self.input_key is None:
|
|
return get_prompt_input_key(inputs, self.memory_variables)
|
|
return self.input_key
|
|
|
|
def load_memory_variables(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
|
|
input_key = self._get_prompt_input_key(inputs)
|
|
query = inputs[input_key]
|
|
docs = self.retriever.get_relevant_documents(query)
|
|
return {
|
|
"chat_history": self.chat_memory.messages[-10:],
|
|
"relevant_context": docs,
|
|
}
|