You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/ROADMAP.md
+3-75Lines changed: 3 additions & 75 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,26 +1,16 @@
1
1
# Roadmap
2
2
3
3
## Documentation
4
-
5
-
6
4
-[ ] Work with Mintlify to translate docs. How does Mintlify let us translate our documentation automatically? I know there's a way.
7
5
-[ ] Better comments throughout the package (they're like docs for contributors)
8
6
-[ ] Show how to replace interpreter.llm so you can use a custom llm
9
-
-[ ] Show how to replace interpreter.computer or add to interpreter.computer.languages for like, e2b execution, remote execution, new programming languages, etc.
10
7
11
8
## New features
12
-
13
9
-[ ] Figure out how to get OI to answer to user input requests like python's `input()`. Do we somehow detect a delay in the output..? Is there some universal flag that TUIs emit when they expect user input? Should we do this semantically with embeddings, then ask OI to review it and respond..?
14
-
-[ ] Multi-line input. Probably use `textual`
15
10
-[ ] Placeholder text that gives a compelling example OI request. Probably use `textual`
16
11
-[ ] Everything else `textual` offers, like could we make it easier to select text? Copy paste in and out? Code editing interface?
17
12
-[ ] Let people edit the code OI writes. Could just open it in the user's preferred editor. Simple. [Full description of how to implement this here.](https://github.com/KillianLucas/open-interpreter/pull/830#issuecomment-1854989795)
18
13
-[ ] Display images in the terminal interface
19
-
-[ ] Add anonymous, opt-in data collection → open-source dataset, like `--contribute_conversations`
20
-
-[ ] Make that flag send each message to server
21
-
-[ ] Set up receiving replit server
22
-
-[ ] Add option to review and send previous conversations, use some PII redaction package then too
23
-
-[ ] Make the messaging really strong re: "We will be saving this, we will redact PII, we will open source the dataset so we (and others) can train code interpreting models"
24
14
-[ ] There should be a function that just renders messages to the terminal, so we can revive conversation navigator, and let people look at their conversations
25
15
-[ ] ^ This function should also render the last like 5 messages once input() is about to be run, so we don't get those weird stuttering `rich` artifacts
26
16
-[ ] Let OI use OI, add `interpreter.chat(async=True)` bool. OI can use this to open OI on a new thread
@@ -29,14 +19,8 @@
29
19
-[ ] If `interpreter.functions != []`:
30
20
-[ ] set `interpreter.computer.languages` to only use Python
31
21
-[ ] Use regex to ensure the output of code blocks conforms to just using those functions + other python basics
32
-
-[x] Allow for custom llms (to be stored in `interpreter.llm`) which conform to some class
33
-
-[x] Has attributes `.supports_functions`, `.supports_vision`, and `.context_window`
34
22
-[ ] (Maybe) Allow for a custom embedding function (`interpreter.embed` or `computer.ai.embed`) which will let us do semantic search
35
23
-[ ] (Maybe) if a git is detected, switch to a mode that's good for developers, like showing nested file structure in dynamic system message, searching for relevant functions (use computer.files.search)
36
-
-[ ] Add a skill library, or maybe expose post processing on code, so we can save functions for later & semantically search docstrings. Keep this minimal!
37
-
-[ ] If `interpreter.skill_library == True`, we should add a decorator above all functions, then show OI how to search its skill library
38
-
-[ ] Use computer.files.search over a folder that decorator saves functions (and import statements to)
39
-
-[ ] Then use dynamic system message to show relevant functions
40
24
-[x] Allow for integrations somehow (you can replace interpreter.llm.completions with a wrapped completions endpoint for any kind of logging. need to document this tho)
41
25
-[ ] Document this^
42
26
-[ ] Expand "safe mode" to have proper, simple Docker support, or maybe Cosmopolitan LibC
@@ -53,42 +37,14 @@
53
37
-[ ] Loop over that ↑ using a different prompt each time. Which prompt is best across all LLMs?
54
38
-[ ] (For the NCU) might be good to use a Google VM with a display
55
39
-[ ] (Future future) Use GPT-4 to assess each result, explaining each failure. Summarize. Send it all to GPT-4 + our prompt. Let it redesign the prompt, given the failures, rinse and repeat
56
-
-[ ] Use Anthropic function calling
57
-
-[ ] Implement Plausible\*
58
-
-[ ] Stateless (as in, doesn't use the application directory) core python package. All `appdir` stuff should be only for the TUI
40
+
-[ ] Stateless (as in, doesn't use the application directory) core python package. All `appdir` or `platformdirs` stuff should be only for the TUI
59
41
-[ ]`interpreter.__dict__` = a dict derived from config is how the python package should be set, and this should be from the TUI. `interpreter` should not know about the config
60
42
-[ ] Move conversation storage out of the core and into the TUI. When we exit or error, save messages same as core currently does
61
-
-[ ] Local and vision should be reserved for TUI, more granular settings for Python
-[x] Implement custom LLMs with a `.supports_vision` attribute instead of `interpreter.vision`
64
43
-[ ] Further split TUI from core (some utils still reach across)
65
-
-[ ] Remove `procedures` (there must be a better way)
66
44
-[ ] Better storage of different model keys in TUI / config file. All keys, to multiple providers, should be stored in there. Easy switching
67
45
-[ ] Automatically migrate users from old config to new config, display a message of this
68
46
-[ ] On update, check for new system message and ask user to overwrite theirs, or only let users pass in "custom instructions" which adds to our system message
69
-
-[ ] I think we could have a config that's like... system_message_version. If system_message_version is below the current version, ask the user if we can overwrite it with the default config system message of that version
70
-
71
-
## Completed
72
-
73
-
-[x]**Split TUI from core — two seperate folders.** (This lets us tighten our scope around those two projects. See "What's in our scope" below.)
74
-
-[x] Add %% (shell) magic command
75
-
-[x] Support multiple instances
76
-
-[x] Split ROADMAP into sections
77
-
-[x] Connect %% (shell) magic command to shell interpreter that `interpreter` runs
-[x] Generalize "output" and "input" — new types other than text: HTML, Image (see below)
80
-
-[x] Switch core code interpreter to be Jupyter-powered
81
-
-[x] Make sure breaking from generator during execution stops the execution
82
-
-[x] (thanks ty!) Add more hosted model instructions from [LiteLLM's docs](https://docs.litellm.ai/docs/) to [our docs](https://github.com/KillianLucas/open-interpreter/tree/main/docs/language-model-setup/hosted-models).
83
-
-[x] Find a model that's [on LiteLLM's docs](https://docs.litellm.ai/docs/providers), but isn't [on ours](https://docs.openinterpreter.com/language-model-setup/hosted-models/openai)
84
-
-[x] Duplicate [one of our hosted model's `.mdx` file](https://github.com/KillianLucas/open-interpreter/tree/main/docs/language-model-setup/hosted-models)
85
-
-[x] Swap out the information with information from LiteLLM
86
-
-[x] Repeat with other models
87
-
-[x] Allow for custom languages (`interpreter.computer.languages.append(class_that_conforms_to_base_language)`)
88
-
-[x] Make it so function calling dynamically uses the languages in interpreter.computer.languages
89
-
-[x] Make a migration guide for the New Computer Update (whats different in our new streaming structure (below) vs. [our old streaming structure](https://docs.openinterpreter.com/usage/python/streaming-response)) thanks ty!
90
-
-[x] Require documentation for PRs
91
-
-[x] Document the New Computer Update
47
+
-[ ] I think we could have a config that's like... system_message_version. If system_message_version is below the current version, ask the user if we can overwrite it with the default config system message of that version. (This somewhat exists now but needs to be robust)
92
48
93
49
# What's in our scope?
94
50
@@ -102,8 +58,7 @@ Open Interpreter contains two projects which support eachother, whose scopes are
102
58
Our guiding philosphy is minimalism, so we have also decided to explicitly consider the following as **out of scope**:
103
59
104
60
1. Additional functions in `core` beyond running code.
105
-
2. Advanced memory or planning. We consider these to be the LLM's responsibility, and as such OI will remain single-threaded.
106
-
3. More complex interactions with the LLM in `terminal_interface` beyond text (but file paths to more complex inputs, like images or video, can be included in that text).
61
+
2. More complex interactions with the LLM in `terminal_interface` beyond text (but file paths to more complex inputs, like images or video, can be included in that text).
107
62
108
63
---
109
64
@@ -211,30 +166,3 @@ if __name__ == "__main__":
211
166
This script will launch Chrome, connect to it, navigate to "https://www.example.com", and then print the accessibility tree to the console.
212
167
213
168
**Note**: The script to launch Chrome assumes a typical installation path on Windows. You will need to modify this path according to your Chrome installation location and operating system. Additionally, handling different operating systems requires conditional checks and respective commands for each OS.
214
-
215
-
## \* Roughly, how to build `computer.files`:
216
-
217
-
Okay I'm thinking like, semantic filesystem or something. We make a new package that does really simple semantic search over a filesystem, then expose it via `computer.files.search("query")`.
0 commit comments