skyagi icon indicating copy to clipboard operation
skyagi copied to clipboard

feat: Support embedding size in config settings

Open gaocegege opened this issue 1 year ago • 2 comments

# 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.

gaocegege avatar Jun 02 '23 03:06 gaocegege

Sure will make a PR for supporting this

tonyz0x0 avatar Jun 03 '23 04:06 tonyz0x0

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
)

tonyz0x0 avatar Jun 03 '23 22:06 tonyz0x0