skyagi
skyagi copied to clipboard
feat: Support embedding size in config settings
# https://python.langchain.com/en/latest/use_cases/agent_simulations/characters.html#create-a-generative-character
def create_new_memory_retriever(ctx: Context):
"""Create a new vector store retriever unique to the agent."""
# Define your embedding model
embeddings_model = load_embedding_from_config(ctx.settings.model.embedding)
# Initialize the vectorstore as empty
embedding_size = 1536
index = faiss.IndexFlatL2(embedding_size)
vectorstore = FAISS(
embeddings_model.embed_query,
index,
InMemoryDocstore({}),
{},
relevance_score_fn=relevance_score_fn,
)
return TimeWeightedVectorStoreRetriever(
vectorstore=vectorstore, other_score_keys=["importance"], k=15
)
Now 1536 is hard-coded.
Sure will make a PR for supporting this
The PR: https://github.com/litanlitudan/skyagi/pull/87 allows user define the embedding_size
in EmbeddingSettings
class, for example:
# skyagi/src/skyagi/model.py
EmbeddingSettings(
type=EmbeddingType.OpenAIEmbeddings,
provider=ModelProvider.OpenAI,
name="openai-text-embedding-ada-002",
args={"model": "text-embedding-ada-002"},
embedding_size=1536
)