Compare commits

...

12 commits

Author SHA1 Message Date
Simon Yang
4803788959 Update version 2024-10-15 22:29:09 +11:00
Simon Yang
60c3f51d2c Fix prompt perfect 2024-10-15 22:26:55 +11:00
Simon Yang
330ce44d20 Update version 2024-10-15 21:42:49 +11:00
Simon Yang
e2b46a8f2e Fix issues. Improve robustness. 2024-10-15 21:37:19 +11:00
Simon Yang
a6fb4afbb6 Update version number 2023-04-25 17:16:09 +10:00
Simon Yang
6750ad7062 Improve description 2023-04-25 17:11:08 +10:00
Simon Yang
e6af43e076 Support Bing without an API key 2023-04-25 17:09:11 +10:00
Simon Yang
71edf59e51 Improve pdf prompt performance 2023-04-25 16:18:43 +10:00
Simon Yang
174cb2fc47
Update README.md 2023-03-29 11:42:32 +11:00
Simon Yang
2fa22c6c88 Update version 2023-03-29 11:32:43 +11:00
Simon Yang
64b6f35f55 Support any model in settings. 2023-03-29 11:32:21 +11:00
Simon Yang
7a5f9c14a4 Add demo 2023-03-18 20:58:31 +11:00
9 changed files with 1164 additions and 4229 deletions

6
.prettierrc Normal file
View file

@ -0,0 +1,6 @@
{
"singleQuote": true,
"tabWidth": 2,
"useTabs": false,
"printWidth": 100
}

View file

@ -2,7 +2,9 @@
<a href="https://www.buymeacoffee.com/yzh503" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 40px !important;width: 150px !important;" ></a> <a href="https://www.buymeacoffee.com/yzh503" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 40px !important;width: 150px !important;" ></a>
**AI Commander** is a simple AI connector that helps you write notes with the power of OpenAI APIs in conjunction with Bing search engine. **AI Commander** is a simple AI connector that helps you write notes with the power of OpenAI (ChatGPT) APIs in conjunction with Bing search engine.
![Demo](demo.gif)
[OpenAI API key](https://platform.openai.com/account/api-keys) is required to use this plugin. [OpenAI API key](https://platform.openai.com/account/api-keys) is required to use this plugin.
@ -18,9 +20,9 @@
## Supported models ## Supported models
- OpenAI gpt-3.5-turbo - GPT models listed in https://platform.openai.com/docs/models/gpt-4
- OpenAI Whisper - Whisper v1
- OpenAI image generation model - DALL·E image generation model
## How to use ## How to use

BIN
demo.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 123 KiB

View file

@ -1,9 +1,9 @@
{ {
"id": "ai-commander", "id": "ai-commander",
"name": "AI Commander", "name": "AI Commander",
"version": "1.3.0", "version": "1.3.4",
"minAppVersion": "1.0.0", "minAppVersion": "1.0.0",
"description": "Generate audio transcripts, images, and text in context of PDF attachments or web search results using OpenAI and Bing API.", "description": "Generate audio transcripts, images, and text in context of PDF attachments or web search results using OpenAI (ChatGPT) and Bing API.",
"author": "Simon Yang", "author": "Simon Yang",
"authorUrl": "https://yzh503.github.io", "authorUrl": "https://yzh503.github.io",
"fundingUrl": "https://www.buymeacoffee.com/yzh503", "fundingUrl": "https://www.buymeacoffee.com/yzh503",

3767
package-lock.json generated

File diff suppressed because it is too large Load diff

View file

@ -1,5 +1,5 @@
{ {
"name": "obsidian-sample-plugin", "name": "obsidian-aicommander-plugin",
"version": "1.0.0", "version": "1.0.0",
"description": "This is a sample plugin for Obsidian (https://obsidian.md)", "description": "This is a sample plugin for Obsidian (https://obsidian.md)",
"main": "main.js", "main": "main.js",

File diff suppressed because it is too large Load diff

View file

@ -1,4 +1,4 @@
import { App, Modal, Setting } from "obsidian"; import { App, Modal } from "obsidian";
export class PromptModal extends Modal { export class PromptModal extends Modal {
prompt: string; prompt: string;
@ -7,34 +7,47 @@ export class PromptModal extends Modal {
constructor( constructor(
app: App, app: App,
defaultprompt: string, defaultPrompt: string,
onSubmit: (prompt: string) => void onSubmit: (prompt: string) => void
) { ) {
super(app); super(app);
this.prompt = defaultprompt; this.prompt = defaultPrompt;
this.onSubmit = onSubmit; this.onSubmit = onSubmit;
} }
onOpen() { onOpen() {
const { contentEl } = this; const { contentEl } = this;
contentEl.createEl("h1", { text: "" }); // Add a title to the modal
contentEl.createEl("h2", { text: "Generate Text from Prompt" });
new Setting(contentEl).setName("Generate text from prompt").addText((text) => // Create a container for the textarea
text.setValue(this.prompt).onChange((value) => { const textareaContainer = contentEl.createDiv({ cls: "prompt-modal-textarea-container" });
this.prompt = value;
})
);
new Setting(contentEl).addButton((btn) => // Create the textarea element
btn const textarea = textareaContainer.createEl("textarea", { cls: "prompt-modal-textarea" });
.setButtonText("Submit") textarea.value = this.prompt;
.setCta()
.onClick(() => { textarea.addEventListener("input", () => {
this.close(); this.prompt = textarea.value;
this.onSubmit(this.prompt); });
})
); // Create a container for the buttons
const buttonContainer = contentEl.createDiv({ cls: "prompt-modal-button-container" });
// Create the submit button
const submitBtn = buttonContainer.createEl("button", { text: "Submit" });
submitBtn.addClass("mod-cta"); // Obsidian's standard call-to-action button styling
submitBtn.addEventListener("click", () => {
this.close();
this.onSubmit(this.prompt);
});
// Optionally, add a cancel button
const cancelBtn = buttonContainer.createEl("button", { text: "Cancel" });
cancelBtn.addEventListener("click", () => {
this.close();
});
} }
onClose() { onClose() {

View file

@ -1,3 +1,3 @@
{ {
"1.3.0": "1.0.0" "1.3.4": "1.0.0"
} }