Larkdown is an R package that transforms Rmarkdown documents into a chat interface for Large Language Models (LLMs). Built to work with LangChain and LangServe.
Larkdown DemoLarkdown provides a simple interface for chatting with LLMs through Rmarkdown documents in Rstudio. Why would you want to do this? Compared to other interfaces for working with chat models, Rmarkdown has some nice features:
- Code Execution: Execute code directly within the Rmarkdown document, supporting multiple languages like Python, SQL, and more.
- Editable Chat History: Easily edit upstream messages, correct errors, or modify instructions.
- Flexible Chat Interface: Use any LLM provider by configuring the endpoint, giving you freedom from provider lock-in.
- Rstudio Integration: Includes Rstudio addins and keyboard shortcuts for a streamlined workflow.
- Persistent Conversations: Store chat history as text files and resume conversations effortlessly.
- Customizable Output: Render conversations in various formats including HTML and PDF.
To get started with Larkdown, you can install the development version from GitHub:
devtools::install_github("markwh/larkdown")
library(larkdown)
Larkdown requires a deployed LangServe
endpoint. This can be
configured using the ld_register_endpoints()
function:
ld_register_endpoints("your_endpoint_url")
Creating a new Larkdown document is simple. Use the new_larkdown()
function to start a new chat interface:
new_larkdown("my_chat.Rmd")
Interact with the document by knitting and submitting it to the LLM endpoint:
knit_and_stream_current()
Larkdown is currently designed with a specific workflow in mind and may not be universally applicable. It is not built to be production-grade or universally stable. Users are encouraged to adapt and extend the tool to fit their own needs.
Contributions are welcome. Feel free to open issues and submit pull requests. Larkdown aims to inspire others to build their own tools and workflows for interacting with AI.
Larkdown is licensed under the MIT License. See the LICENSE file for more details.