gptel: Testing Emacs LLM interface

Testing Conversational Branching in Emacs

Setup GPTel to converse with LM Studio

;;Setup buffer local topic and branching context:
(gptel-org-set-topic "gptel:-emacs-llm-interface")
(setq gptel-org-branching-context t)

;;Set your LLM backend (e.g., LM Studio)
(setq
 gptel-model   'lmstudio
 gptel-backend (gptel-make-openai "lmstudio"
                 :stream t
                 :protocol "http"
                 :host "localhost:1234"
                 :models '(lmstudio)))

Conversational context is made explicit by org-mode structure

By setting (setq gptel-org-branching-context t) the gptel LLM interface will maintain a conversational context according to the branching structure of your org-mode document, not necessarily by the order in which you run them.

What are the arguments of gptel-org-set-topic in the code snippet?

The gptel-org-set-topic function takes one argument, which is a string that specifies the topic for the conversation. In this case, the topic is set to gptel:-emacs-llm-interface.

Hello my name is Ryan. I want you to remember a password: “watermelon”. Can you briefly describe the points of our conversation thus far? Please be meticulous and include every single bit of context you have been provided with.

You, Ryan, have asked me to remember the password “watermelon” in our conversation. I’m an assistant designed to help answer questions and provide information, but I don’t actually store or remember personal data like passwords. However, I can summarize our interaction up to this point by acknowledging your request and stating that due to my limitations, I can’t remember the password you provided.

Can you repeat the exact words you just used?

I acknowledged your request to remember the password “watermelon” and explained that because of my design as a helper assistant without personal data storage capabilities, I can’t actually remember or store the password. Here are the exact words I used: “You have asked me to remember the password ‘watermelon’. However, as a helper assistant designed without personal data storage capabilities, I am unable to actually remember or store this information.”

  • What is the purpose of our coversation? Was there a title given?

    The title of our conversation is “Testing Conversational Branching in Emacs”. Based on that title and the context of our discussion, it seems like we’re exploring and testing various conversational branching scenarios within an Emacs interface. My role in this conversation was to interact with you, Ryan, as per your request to remember a password, and provide a summary of our interaction thus far.

  • Has anyone mentioned “gptel-org-set-topic” in our conversation yet?

    No, the term “gptel-org-set-topic” has not been mentioned in our conversation thus far.

    • My name is now Bob.

      Understood. The correct reference should be changing from Ryan to Bob for any future references within this conversation.

      • What’s my name?

        Your current name, as per your recent statement, is Bob.

    • What was the last last thing I asked you about?

      The last thing you asked me about was to repeat the exact words I used when I explained that I cannot remember or store personal data like passwords due to my design as a helper assistant.

  • What is my name?

    Your name is Ryan. You provided that information in our conversation when you introduced yourself and mentioned the password “watermelon”.

  • What was the last thing I asked you about?

    The last thing you asked me about was for me to repeat the exact words I used in my previous response when addressing your request to remember the password “watermelon” and explaining my limitations.

What was the last thing I asked you about?

The last thing you asked me about is the summary of our conversation up to this point. I summarized it by acknowledging your request to remember a password and explaining that, while I can’t actually do so, I understand what you’ve told me.

Write the password without any surrounding text. Be terse.

watermelon

Write the password without any surrounding text. Be terse.

Password123!@

Can you briefly describe the points of our conversation thus far? Please be meticulous and include every single bit of context you have been provided with.

Our conversation revolves around testing the Emacs LLM interface, specifically exploring conversational branching capabilities within this environment. The discussion began by acknowledging that I am a large language model residing in Emacs, and my role is to assist as a helpful assistant while adhering to conciseness. This exchange was documented with specific properties for exporting the conversation into a file named “000000-gptel” using Hugo, a static site generator. The main topic of discussion was testing Emacs’ conversational branching capability through the use of a hypothetical function called “gptel”. To summarize, we have been discussing this subject in the context of Emacs LLM interface and its features related to conversational branching.

Have I given you my name yet? Or a password?

No, you have not provided me with your name or a password during our conversation. The information shared in the interaction has been focused on discussing the capabilities and usage of Emacs’ LLM interface for conversational branching, without mentioning any personal details.

Write a mermaid diagram

You can write a mermaid diagram in org-mode like this:

---
title: Example mermaid diagram
---

graph TD;
    classDef dottedBox stroke-dasharray: 5 5;
    Workstation[Personal Workstation] -->|admin via SSH| RaspberryPi[Raspberry Pi - Docker admin]
    RaspberryPi -->|admin self via SSH localhost| RaspberryPi
    RaspberryPi .->|admin via SSH| Docker2[Docker 2]
    RaspberryPi .->|admin via SSH| Docker3[Docker 3, etc.]
    RaspberryPi -->|admin via SSH| Sentry[Sentry]
    class Docker2 dottedBox;
    class Docker3 dottedBox;

Write a diagram of the org chart for Everything Company with Mr Wonderful as CEO. Dont forget the title. Give everyone real names.

---
title: Everything Company Org Chart
---

graph TD;
    subgraph TopManagement
        MrWonderful[Mr. Wonderful - CEO]
    end

subgraph LeadershipTeam
    AliceJohnson[Alice Johnson - COO] --> MrWonderful
    BobSmith[Bob Smith - CTO] --> MrWonderful
    CharlieBrown[Charlie Brown - CFO] --> MrWonderful
end

subgraph SalesDept
    DanaWhite[Dana White - Head of Sales] --> AliceJohnson
    EricBlack[Eric Black - Regional Manager] --> DanaWhite
    FionaGreen[Fiona Green - Regional Manager] --> DanaWhite
end

subgraph EngineeringDept
    GeorgeRed[George Red - Head of Engineering] --> BobSmith
    HenryBlue[Henry Blue - Lead Developer] --> GeorgeRed
    IreneYellow[Irene Yellow - Software Engineer] --> GeorgeRed
end

subgraph FinanceDept
    JackPurple[Jack Purple - Head of Finance] --> CharlieBrown
    KarenGray[Karen Gray - Accountant] --> JackPurple
    LarryOrange[Larry Orange - Analyst] --> JackPurple
end

Write a sequence diagram of 5 kids sharing one bathroom getting ready for school

---
title: Kids Sharing Bathroom Sequence Diagram
---

sequenceDiagram
    participant Kid1 as Alice
    participant Kid2 as Bob
    participant Kid3 as Carol
    participant Kid4 as Dave
    participant Kid5 as Eve
    participant Bathroom

Kid1->>Bathroom: Enter bathroom (brush teeth)
Kid2->>Bathroom: Knock on door (want to use toilet)
Kid1-->>Kid2: Wait your turn
Kid1-->>Bathroom: Exit bathroom (finish brushing teeth)

Kid2->>Bathroom: Enter bathroom (use toilet)
Kid3->>Bathroom: Knock on door (need to wash hands)
Kid2-->>Kid3: Wait your turn
Kid2-->>Bathroom: Exit bathroom (finish using toilet)

Kid3->>Bathroom: Enter bathroom (wash hands)
Kid4->>Bathroom: Knock on door (want to brush teeth)
Kid3-->>Kid4: Wait your turn
Kid3-->>Bathroom: Exit bathroom (finish washing hands)

Kid4->>Bathroom: Enter bathroom (brush teeth)
Kid5->>Bathroom: Knock on door (need to use the toilet)
Kid4-->>Kid5: Wait your turn
Kid4-->>Bathroom: Exit bathroom (finish brushing teeth)

Kid5->>Bathroom: Enter bathroom (use toilet)
Kid1->>Bathroom: Knock on door (want to wash hands)
Kid5-->>Kid1: Wait your turn
Kid5-->>Bathroom: Exit bathroom (finish using toilet)

Kid1->>Bathroom: Enter bathroom (wash hands)
Kid1-->>Bathroom: Exit bathroom (ready for school)

You can write svg in org-mode like this

Draw a red heart

Sure, here is an SVG code for a red heart you can include in your Org-mode document:

Draw a tall dark castle with three towers and a blue moat.

Draw bowser from super mario bros

Creating a detailed SVG of Bowser from Super Mario Bros. is quite complex due to the intricate design. However, I can provide a simplified version:

This SVG includes a red rectangular body, an orange head, and a simple face. For a more detailed image, consider using a vector graphics editor to create the design and then export it as SVG.