Code AI platform with Code Search & Cody
Go to file
Chris Smith 32720268cc
Relax modelconfig name restrictions (#64161)
This PR greatly relaxes the naming restrictions for resource IDs when
using the new `modelconfig` LLM model configuration system.

The original intent was to set a high bar for how we would allow users
to refer to LLM providers, API versions, or models. So that we could
have use those names in URLs and/or display them if no human-friendly
name was supplied. e.g. `opanai::v1::gpt-3.5-turbo`.

However, in practice, this was just a bit too optimistic. We already had
carved out an exception for "API versions" to be less strict, since
there were some cases where we saw those included slashes and things.
And one of our trusted testers immediately ran into problems because the
model name had an `@` in it. (See the linked issue.)

In order to avoid perpetually trying to work around LLM providers and
whatever IDs they use for things, it seemed preferable to just relax our
rules.

With this PR, we will constraint Provider, API Versions, and Model IDs
to only be URL-safe(*). So previously characters like `[]@/+;!` were
prohibited, they are now allowed.) However, we still restrict names to
only include `a-zA-Z` and no unicode characters, and curly braces are
not allowed. (But `[]` and `()` are.

> Pedantically, we do not want to say they are _exactly_ URL safe.
Because we don't perform any sort of escaping (e.g. "%20" -> " ", etc.)
Nor do we allow the `:` which _is_ allowed by the RFC, since we are
using that to delimit parts of the model ref.

Anyways, this should provide enough flexibility to avoid most (hopefully
all) problems users would encounter. While still enforcing some type of
standards with regard to how models are defined.

Fixes [PRIME-451 : invalid ModelID (claude-3-5-sonnet@20240620) after
upgrading to
5.5.2463](https://linear.app/sourcegraph/issue/PRIME-451/invalid-modelid-claude-3-5-sonnet20240620-after-upgrading-to-552463).)

## Test plan

Added tests.

## Changelog

NA.
2024-07-30 15:20:22 -07:00
.apko Build images end-to-end using Bazel v2 (#61845) 2024-04-12 16:18:43 +01:00
.aspect chore(bazel): re-enable remote caching of Copy{File,Directory,ToDirectory} actions (#64153) 2024-07-30 16:02:11 +00:00
.buildkite chore(ci): remove Percy visual tests (#63515) 2024-06-27 16:20:06 +02:00
.github ci: add cloud controller gql compat test (#64092) 2024-07-30 10:06:49 -07:00
.vscode feat(search): Make search aware of perforce changelist id mapping (#63563) 2024-07-09 14:01:05 -04:00
client Nit: adds space between tools menu item and dropdown icon (#64154) 2024-07-30 16:35:58 +00:00
cmd feat(bazel): read binary version info from accompanying files in OCI images instead of stamping //internal/version (#63977) 2024-07-30 20:52:01 +00:00
dev feat(bazel): read binary version info from accompanying files in OCI images instead of stamping //internal/version (#63977) 2024-07-30 20:52:01 +00:00
doc Update the outdated link to #dev-experience to #discuss-dev-infra (#64018) 2024-07-25 06:58:22 -05:00
docker-images feat(codenav): Add symbol support for the Hack language (#64015) 2024-07-30 10:46:00 -04:00
internal Relax modelconfig name restrictions (#64161) 2024-07-30 15:20:22 -07:00
lib chore(worker): move llm token counter to worker (#64008) 2024-07-24 10:03:33 +02:00
migrations fix(batches): switch github app installation handling from redirect flow to webhooks (#64036) 2024-07-26 11:53:34 +00:00
monitoring feat/lib/telemetrygateway: expose simple Dial (#63810) 2024-07-15 10:45:10 -07:00
schema Support detecting search and edit intent (#64129) 2024-07-30 09:20:45 +00:00
testing feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
third_party enterprise-portal: implement basic MSP IAM and RPCs (#63173) 2024-06-19 21:46:48 -04:00
third-party-licenses finish removing chromatic (#63966) 2024-07-21 18:37:02 -07:00
tools Integrate security release approval into release pipeline (#63990) 2024-07-24 09:19:49 +01:00
ui/assets feat/bazel: //cmd/{frontend,server} targets that don't include client bundle for backend integration tests (#62877) 2024-05-28 14:32:48 +01:00
wolfi-images Wolfi image for Sourcegraph Frontend (#63798) 2024-07-25 15:33:49 +01:00
wolfi-packages Unpin openjdk-11 version in blobstore package (#64045) 2024-07-24 16:57:21 +01:00
.bazel_fix_commands.json SG Start Bazel Improvements Take 2 (#60687) 2024-03-05 01:44:21 -08:00
.bazelignore Convert Appliance Maintenance UI to Bazel (#63661) 2024-07-10 13:47:18 +02:00
.bazeliskrc chore: upgrade to Aspect CLI 5.8.19 (#59203) 2024-01-02 15:13:24 +01:00
.bazelrc feat(ci): Adds playwright tests for sveltekit to bazel (#62560) 2024-06-06 12:45:05 -06:00
.bazelversion chore(bazel): bump to 7.2.0 (#63226) 2024-06-12 13:25:18 +00:00
.dockerignore use esbuild for client/web builds (#57365) 2023-10-23 10:59:06 -07:00
.editorconfig proto: Add editorconfig to ident using two spaces (#57281) 2023-10-03 00:39:42 +00:00
.eslintrc.js finish removing chromatic (#63966) 2024-07-21 18:37:02 -07:00
.gitattributes dev/linearhooks: add POC (#62367) 2024-05-07 00:14:05 -07:00
.gitignore chore(ci): emit compact executon log in CI (#63420) 2024-06-21 19:50:35 +01:00
.graphqlrc.yml
.hadolint.yaml bump comby version to 1.7.1 (#35830) 2022-05-20 20:12:01 -07:00
.mailmap mailmap: add entries for Eric and Renovate (#50966) 2023-04-25 09:42:22 +02:00
.mocharc.js reapply "switch from jest to vitest for faster, simpler tests (#57886)" (#58145) 2023-11-07 12:00:18 +02:00
.npmrc pnpm: remove update notifier message (#51630) 2023-05-10 08:53:39 +02:00
.pre-commit-config.yaml chore(local): add FORBIDCOMMIT pragma to prevent accidental commits (#63581) 2024-07-01 18:27:26 +00:00
.prettierignore feat/dotcom: use Enterprise Portal for Cody Gateway usage (#63653) 2024-07-10 19:22:08 +00:00
.stylelintignore rework plugin structure and implement frontside blogpost (#46883) 2023-02-15 11:49:51 +02:00
.stylelintrc.json web: drop bootstrap depenedency (#41401) 2022-09-07 03:11:26 -07:00
.swcrc use swc instead of babel for faster bazel typescript transpilation (#57912) 2023-11-02 22:49:03 -07:00
.tool-versions chore(tooling): bump Go version to 1.22.4 (#63124) 2024-06-06 15:19:03 +00:00
.trivyignore
BUILD.bazel feat(build): Add exhaustruct linter (codeintel POC) (#63965) 2024-07-23 17:26:01 +08:00
CHANGELOG.md feat(code insights): language stats speed improvements by using archive loading (#62946) 2024-07-18 08:40:48 +02:00
CODENOTIFY nix: update pnpm hash (#51512) 2023-05-05 12:51:59 +00:00
CONTRIBUTING.md fix: update links for dev docs (#62758) 2024-05-17 13:47:34 +02:00
deps.bzl feat(local): sg tail (#64146) 2024-07-30 14:03:27 +02:00
doc.go
eslint-relative-formatter.js bazel: implement custom ESLint Bazel rule (#52062) 2023-05-22 04:05:45 -07:00
flake.lock nix: bump to bazel 7.1 (#61326) 2024-03-22 16:57:50 +00:00
flake.nix nix: use go1.22.4 (#63372) 2024-06-20 11:12:17 +02:00
gen.go chore: fixup go-mockgen run statement (#61028) 2024-03-12 13:06:36 +00:00
go.mod feat(local): sg tail (#64146) 2024-07-30 14:03:27 +02:00
go.sum feat(local): sg tail (#64146) 2024-07-30 14:03:27 +02:00
graphql-schema-linter.config.js
LICENSE relicense all paths other than MIT licensed code, client/cody*, jetbrains, VS code, and browser extension to enterprise (#53345) (#53345) 2023-06-13 10:28:11 -07:00
LICENSE.enterprise Update Enterprise license copyright notice (#62467) 2024-05-06 17:35:32 +00:00
linter_deps.bzl feat(build): Add exhaustruct linter (codeintel POC) (#63965) 2024-07-23 17:26:01 +08:00
mockgen.temp.yaml chore(codeintel): Rename uploads/../Store -> codegraph/../DataStore (#64001) 2024-07-24 08:24:20 +01:00
mockgen.test.yaml chore(codeintel): Rename uploads/../Store -> codegraph/../DataStore (#64001) 2024-07-24 08:24:20 +01:00
mockgen.yaml bazel: native go-mockgen in Bazel (#60386) 2024-02-16 13:26:48 +00:00
nogo_config.json chore: Remove redundant loop captures (#62264) 2024-04-30 07:57:21 -06:00
package.json Bump cody web to most recent package @sourcegraph/cody-web (#64149) 2024-07-30 12:34:43 -03:00
pnpm-lock.yaml Svelte: Bump cody web to most recent package @sourcegraph/cody-web (#64152) 2024-07-30 09:11:37 -07:00
pnpm-workspace.yaml Convert Appliance Maintenance UI to Bazel (#63661) 2024-07-10 13:47:18 +02:00
postcss.config.js
prettier.config.js clean up Cody CSS to increase shareability and improve display in web app (#50279) 2023-04-03 12:29:05 -07:00
README.md chore: remove broken link in README (#63256) 2024-06-13 22:22:56 +00:00
release.yaml Integrate security release approval into release pipeline (#63990) 2024-07-24 09:19:49 +01:00
renovate.json chore(ci): disable renovate (#63313) 2024-06-19 13:17:15 +02:00
SECURITY.md
service-catalog.yaml lib/servicecatalog: init to distribute catalog (#46999) 2023-01-26 17:22:27 -08:00
sg.config.yaml chore(local): use //cmd/frontend:frontend_nobundle for bazel commandsets (#64085) 2024-07-25 16:49:53 +00:00
shell.nix bazel: use pgutil binaries from GCS instead of from the host (#61741) 2024-04-11 18:00:21 +01:00
stamp_tags.bzl Switch to OCI/Wolfi based image (#52693) 2023-06-02 12:12:52 +02:00
tsconfig.base.json web: fix pnpm-lock issue (#47478) 2023-02-09 22:04:31 -08:00
tsconfig.json release: drop legacy release tooling (#61220) 2024-04-09 14:29:35 -05:00
vitest.shared.ts make pagination hooks store filter & query params in URL, not just pagination params (#63744) 2024-07-15 19:17:59 +00:00
vitest.workspace.ts vitest: Fix workspace config wrt client/web/ (#58397) 2023-11-17 08:22:46 +00:00
WORKSPACE release/bug: generate a new stitched migration graph (#63764) 2024-07-10 14:49:18 -07:00

DocsContributingTwitterDiscord

Build status Scorecard Latest release Discord Contributors


Sourcegraph makes it easy to read, write, and fix code—even in big, complex codebases.

  • Code search: Search all of your repositories across all branches and all code hosts.
  • Code intelligence: Navigate code, find references, see code owners, trace history, and more.
  • Fix and refactor: Roll out large-scale changes to many repositories at once and track big migrations.

Getting started



Development

Refer to the Developing Sourcegraph guide to get started.

Documentation

The doc directory has additional documentation for developing and understanding Sourcegraph:

License

This repository contains primarily non-OSS-licensed files. See LICENSE.

Copyright (c) 2018-present Sourcegraph Inc.