Add gpt-4-1106-preview model

Joseph T. Lyons created

Change summary

Cargo.lock                                 |  5 ++---
Cargo.toml                                 |  3 +++
assets/settings/default.json               | 14 ++++----------
crates/Cargo.toml                          |  2 +-
crates/ai/Cargo.toml                       |  2 +-
crates/ai2/Cargo.toml                      |  2 +-
crates/assistant/Cargo.toml                |  2 +-
crates/assistant/src/assistant_settings.rs |  7 ++++++-
crates/semantic_index/Cargo.toml           |  2 +-
9 files changed, 20 insertions(+), 19 deletions(-)

Detailed changes

Cargo.lock 🔗

@@ -9256,9 +9256,8 @@ dependencies = [
 
 [[package]]
 name = "tiktoken-rs"
-version = "0.5.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "f9ae5a3c24361e5f038af22517ba7f8e3af4099e30e78a3d56f86b48238fce9d"
+version = "0.5.6"
+source = "git+https://github.com/JosephTLyons/tiktoken-rs/?rev=edb3ea9eda1b906205b346599c43c5c0e8da1392#edb3ea9eda1b906205b346599c43c5c0e8da1392"
 dependencies = [
  "anyhow",
  "base64 0.21.4",

Cargo.toml 🔗

@@ -160,6 +160,9 @@ pretty_assertions = "1.3.0"
 git2 = { version = "0.15", default-features = false}
 uuid = { version = "1.1.2", features = ["v4"] }
 
+# Point back to original crate when this is merged:
+# https://github.com/zurawiki/tiktoken-rs/pull/49
+tiktoken-rs = { git = "https://github.com/JosephTLyons/tiktoken-rs/", rev="edb3ea9eda1b906205b346599c43c5c0e8da1392" }
 tree-sitter-bash = { git = "https://github.com/tree-sitter/tree-sitter-bash", rev = "7331995b19b8f8aba2d5e26deb51d2195c18bc94" }
 tree-sitter-c = "0.20.1"
 tree-sitter-cpp = { git = "https://github.com/tree-sitter/tree-sitter-cpp", rev="f44509141e7e483323d2ec178f2d2e6c0fc041c1" }

assets/settings/default.json 🔗

@@ -174,7 +174,8 @@
     //
     // 1. "gpt-3.5-turbo-0613""
     // 2. "gpt-4-0613""
-    "default_open_ai_model": "gpt-4-0613"
+    // 3. "gpt-4-1106-preview"
+    "default_open_ai_model": "gpt-4-1106-preview"
   },
   // Whether the screen sharing icon is shown in the os status bar.
   "show_call_status_icon": true,
@@ -270,9 +271,7 @@
   "copilot": {
     // The set of glob patterns for which copilot should be disabled
     // in any matching file.
-    "disabled_globs": [
-      ".env"
-    ]
+    "disabled_globs": [".env"]
   },
   // Settings specific to journaling
   "journal": {
@@ -381,12 +380,7 @@
         // Default directories to search for virtual environments, relative
         // to the current working directory. We recommend overriding this
         // in your project's settings, rather than globally.
-        "directories": [
-          ".env",
-          "env",
-          ".venv",
-          "venv"
-        ],
+        "directories": [".env", "env", ".venv", "venv"],
         // Can also be 'csh', 'fish', and `nushell`
         "activate_script": "default"
       }

crates/Cargo.toml 🔗

@@ -29,7 +29,7 @@ postage.workspace = true
 rand.workspace = true
 log.workspace = true
 parse_duration = "2.1.1"
-tiktoken-rs = "0.5.0"
+tiktoken-rs.workspace = true
 matrixmultiply = "0.3.7"
 rusqlite = { version = "0.29.0", features = ["blob", "array", "modern_sqlite"] }
 bincode = "1.3.3"

crates/ai/Cargo.toml 🔗

@@ -29,7 +29,7 @@ postage.workspace = true
 rand.workspace = true
 log.workspace = true
 parse_duration = "2.1.1"
-tiktoken-rs = "0.5.0"
+tiktoken-rs.workspace = true
 matrixmultiply = "0.3.7"
 rusqlite = { version = "0.29.0", features = ["blob", "array", "modern_sqlite"] }
 bincode = "1.3.3"

crates/ai2/Cargo.toml 🔗

@@ -29,7 +29,7 @@ postage.workspace = true
 rand.workspace = true
 log.workspace = true
 parse_duration = "2.1.1"
-tiktoken-rs = "0.5.0"
+tiktoken-rs.workspace = true
 matrixmultiply = "0.3.7"
 rusqlite = { version = "0.29.0", features = ["blob", "array", "modern_sqlite"] }
 bincode = "1.3.3"

crates/assistant/Cargo.toml 🔗

@@ -40,7 +40,7 @@ schemars.workspace = true
 serde.workspace = true
 serde_json.workspace = true
 smol.workspace = true
-tiktoken-rs = "0.5"
+tiktoken-rs.workspace = true
 
 [dev-dependencies]
 editor = { path = "../editor", features = ["test-support"] }

crates/assistant/src/assistant_settings.rs 🔗

@@ -9,6 +9,8 @@ pub enum OpenAIModel {
     ThreePointFiveTurbo,
     #[serde(rename = "gpt-4-0613")]
     Four,
+    #[serde(rename = "gpt-4-1106-preview")]
+    FourTurbo,
 }
 
 impl OpenAIModel {
@@ -16,6 +18,7 @@ impl OpenAIModel {
         match self {
             OpenAIModel::ThreePointFiveTurbo => "gpt-3.5-turbo-0613",
             OpenAIModel::Four => "gpt-4-0613",
+            OpenAIModel::FourTurbo => "gpt-4-1106-preview",
         }
     }
 
@@ -23,13 +26,15 @@ impl OpenAIModel {
         match self {
             OpenAIModel::ThreePointFiveTurbo => "gpt-3.5-turbo",
             OpenAIModel::Four => "gpt-4",
+            OpenAIModel::FourTurbo => "gpt-4-turbo",
         }
     }
 
     pub fn cycle(&self) -> Self {
         match self {
             OpenAIModel::ThreePointFiveTurbo => OpenAIModel::Four,
-            OpenAIModel::Four => OpenAIModel::ThreePointFiveTurbo,
+            OpenAIModel::Four => OpenAIModel::FourTurbo,
+            OpenAIModel::FourTurbo => OpenAIModel::ThreePointFiveTurbo,
         }
     }
 }

crates/semantic_index/Cargo.toml 🔗

@@ -33,7 +33,7 @@ lazy_static.workspace = true
 serde.workspace = true
 serde_json.workspace = true
 async-trait.workspace = true
-tiktoken-rs = "0.5.0"
+tiktoken-rs.workspace = true
 parking_lot.workspace = true
 rand.workspace = true
 schemars.workspace = true