Comment by UltraSane

1 day ago

I've been working on something similar to this using Neo4j so you can control the context with a Cypher query because I really like Cypher. But this visualization is excellent.

Thanks! I'm not very familiar with Neo4j and Cypher yet. How do you control the context using Cypher? Do you manually write queries for each request, or do you select nodes through the interface and then automatically generate queries? I'm also curious about how the graph structure obtained from the query is ultimately transformed into an ordered model context.

  • I model the chat as a series of prompt and response nodes like

    (prompt)-[:NEXT]->(response)

    and can choose a given context by using a path query

    MATCH p = (:prompt{id:<>})-[:NEXT*]->(:response{id:<>}) RETURN p

    and extract the text from the nodes and format it as the API requires.