interwebalchemy / obsidian-ai-research-assistant Goto Github PK
View Code? Open in Web Editor NEWPrompt Engineering Research Tool for AI APIs
License: MIT No Attribution
Prompt Engineering Research Tool for AI APIs
License: MIT No Attribution
Now that the official ChatGPT API has been released, it should become the default model.
Is your feature request related to a problem? Please describe.
During a conversation, sometimes it would be nice to be able to resubmit the previous prompt - especially if you have hot-swapped models and don't want to have to forget the previous prompt and response.
Describe the solution you'd like
A button next to the memory manager for user messages that allows you to resubmit a prompt.
Maybe also a button next to the memory manager for bot messages that allows you to regenerate a response.
Is your feature request related to a problem? Please describe.
Add support for ollama models.
Describe the solution you'd like
If ollama is running, populate the models dropdown with available local models.
If an ollama model is selected, submit the request to the ollama model via the completion endpoint.
Additional context
We'll need to add a new ollama service with a generic model definition and adapter configuration.
We'll also need a formatting utility similar to the formatChat utility for the existing openai service.
When a user starts a new Conversation with Autosaving enabled, we should:
Right now there is just an annoying nag notification about renaming your conversation.
Describe the bug
Tokens are calculated incorrectly
To Reproduce Steps to reproduce the behavior:
Expected behavior
Token count should match the expected value based on how tiktoken calculates tokens for the chosen model.
Additional context
This plugin originally only worked with the text-davinci-003
model and there was not a good JavaScript port of tiktoken
available at the time.
We should replace gpt3-tokenizer with gpt-tokenizer.
Is your feature request related to a problem? Please describe.
When establishing a preamble, there are certain strings that would be helpful to be able to have templatized like today's date.
Describe the solution you'd like
A simple template syntax like %today%
or {today}
that runs the formatDate()
utility and injects the current date into the preamble.
Describe the bug:
When streaming responses were introduced, the scroll-to-bottom behavior of the chat window stopped working as expected due to the streaming response being updated as a separate prop and the scrolling logic being based on the overall conversation length, which only gets updated when the streaming response is complete.
The scrolling logic needs to take the streaming response into account and continue scrolling to the bottom while the streaming response is rendering.
Make the changes requested in obsidianmd/obsidian-releases #2218
Is your feature request related to a problem? Please describe.
New versions can no longer be installed via BRAT prior to a General Availability release.
Describe the solution you'd like
Implement the manifest-beta.json
functionality from BRAT into a Preview Release workflow similar to the existing Release workflow
Describe alternatives you've considered
It's still possible to test new versions manually via cloning the branch and manually adding the plugin to Obsidian, but that is less than ideal.
Additional context
BRAT gives developers and beta testers easier access to beta releases of the plugin and should be considered part of the Pull Request review lifecycle prior to merging changes into main
and triggering a release.
Follow semver and use a format like X.Y.Z-beta+${COMMIT_SHA}.${WORKFLOW_RUN}
for these preview releases.
Notes:
X.Y.Z
semver version should be incremented by the appropriate value for the changes included in this version based on the conventional commit and semantic release standards this repository followsObsidian currently does not have a good way to ensure that secrets like API keys are stored securely.
In this case "good" is defined as cross-platform, secure storage of a string that prevents access from any unauthorized or unexpected actors.
By default, many plugins store things like API Keys in plaintext in the data.json
, which means that any plugin with access to the Obsidian object, and any code with access to the user's filesystem, has access to the API Key.
This plugin, the Obsidian AI Research Assistant, also currently stores the user's OpenAI API Key in this way - which is why it hasn't been submitted to the Community Plugins listing yet.
Electron provides a safeStorage
method that Obsidian exposes to us via the safeStorage
API, but from my understanding this still allows other plugins to call safeStorage.decryptString()
.
Given that eventually this plugin wants to support mobile, there needs to a be a longer term solution for this, but temporarily, we should move to using safeStorage
for at least a slightly more secure implementation.
We should also add a warning to the plugin Settings interface that lets the user know that they need to be wary of what other plugins they install might be doing in terms of calling decryptString()
on these API keys.
Maybe we can find a way to monkey patch the decryptString
method to require consent from the user to decrypt the requested string?
Is your feature request related to a problem? Please describe. A clear and concise description
compared to talk with ai, talking with ai + note is more helpful for learning.
Describe the solution you'd like A clear and concise description of what you want to happen.
give personal notes data to ai ,and ai could answer my question based on the data.
Is your feature request related to a problem? Please describe.
Responses take too long to deliver to the UI.
Describe the solution you'd like
Now that OpenAI has added streaming support to the openai
npm package, switch to streaming responses to the UI.
Is your feature request related to a problem? Please describe.
I frequently use ChatGPT and export my chat sessions as JSON files. Currently, there's no easy way to integrate these exported chat histories into the Obsidian AI Research Assistant's chat history format.
Describe the solution you'd like
I would like a feature within the Obsidian AI Research Assistant that allows users to import ChatGPT data export JSON files. This feature should convert the ChatGPT chat format into the AI Research Assistant's chat history format, enabling users to view and analyze all their past ChatGPT sessions seamlessly within Obsidian.
For a detailed structure of the ChatGPT JSON data export, you can refer to this JSON schema.
Describe alternatives you've considered
An alternative would be to manually convert the ChatGPT JSON data into the format supported by the AI Research Assistant. However, this can be time-consuming and prone to errors, especially for long chat histories.
Additional context
Integrating this feature will significantly enhance the user experience for those who actively use both ChatGPT and the Obsidian AI Research Assistant, making it easier to manage and review past interactions.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.