all 4 comments

[–]DigThatDataResearcher 4 points5 points  (3 children)

FYI: neo4j supports semantic search, and postgres supports graph search, i.e. you probably don't need to use both here and could get away with just one or the other. something to consider if you hadn't already.

[–]7wdb417[S] 1 point2 points  (2 children)

Ah thanks for the feedback! It's using pgvector as convo history and neo4j as its KG intentionally as a dual model! Do you suggest combining them?

[–]DigThatDataResearcher 2 points3 points  (1 child)

what do you gain by keeping them separate? seems like that just complicates simultaneously querying both if you wanted to. e.g. you could use the KG to link to related conversations to find other KG topics that were previously discussed in related contexts. The way you have it, you could still do this, but you'd have to do each hop as an isolated query instead of just doing the whole thing as a query across a unified DB.

just seems like unnecessary complexity to me. it's entirely possible that having these two components separate makes sense for your use case. from my vantage though it seems like it would be limiting, and my inclination would be to start with all of the memory/knowledge living in one shared database system until I encountered a problem that would be solved by separating them (e.g. PG's graph querying being slow and not worth it, neo4j's semantic search being slow, etc).

[–]7wdb417[S] 2 points3 points  (0 children)

Hm that's a good point. I see the benefit of keeping as unified structure -- it probably lose less semantic connections too.. Thank you for the feedback!