Compare commits

...

9 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
8 changed files with 1162 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,7 @@
<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)
@ -20,9 +20,9 @@
## Supported models
- OpenAI gpt-3.5-turbo
- OpenAI Whisper
- OpenAI image generation model
- GPT models listed in https://platform.openai.com/docs/models/gpt-4
- Whisper v1
- DALL·E image generation model
## How to use

View file

@ -1,9 +1,9 @@
{
"id": "ai-commander",
"name": "AI Commander",
"version": "1.3.1",
"version": "1.3.4",
"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",
"authorUrl": "https://yzh503.github.io",
"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",
"description": "This is a sample plugin for Obsidian (https://obsidian.md)",
"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 {
prompt: string;
@ -7,34 +7,47 @@ export class PromptModal extends Modal {
constructor(
app: App,
defaultprompt: string,
defaultPrompt: string,
onSubmit: (prompt: string) => void
) {
super(app);
this.prompt = defaultprompt;
this.prompt = defaultPrompt;
this.onSubmit = onSubmit;
}
onOpen() {
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) =>
text.setValue(this.prompt).onChange((value) => {
this.prompt = value;
})
);
// Create a container for the textarea
const textareaContainer = contentEl.createDiv({ cls: "prompt-modal-textarea-container" });
new Setting(contentEl).addButton((btn) =>
btn
.setButtonText("Submit")
.setCta()
.onClick(() => {
this.close();
this.onSubmit(this.prompt);
})
);
// Create the textarea element
const textarea = textareaContainer.createEl("textarea", { cls: "prompt-modal-textarea" });
textarea.value = this.prompt;
textarea.addEventListener("input", () => {
this.prompt = textarea.value;
});
// 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() {

View file

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