summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorDax Raad <[email protected]>2025-08-01 17:03:33 -0400
committerDax Raad <[email protected]>2025-08-01 17:03:33 -0400
commite1b7e25f4d16e1bee5a3ca91be868c02a538a7d9 (patch)
tree89bd7096f11ec2d91acdd3439c5d7e29f75e90fe
parent98b6bb218b45b3c2a8a7a1a69e2e715a21321de2 (diff)
downloadopencode-e1b7e25f4d16e1bee5a3ca91be868c02a538a7d9.tar.gz
opencode-e1b7e25f4d16e1bee5a3ca91be868c02a538a7d9.zip
make top_p configurable
-rw-r--r--packages/opencode/src/config/config.ts1
-rw-r--r--packages/opencode/src/provider/transform.ts5
-rw-r--r--packages/opencode/src/session/index.ts1
-rw-r--r--packages/opencode/src/session/mode.ts4
-rw-r--r--packages/web/astro.config.mjs1
-rw-r--r--packages/web/src/content/docs/docs/lsp-servers.mdx34
6 files changed, 11 insertions, 35 deletions
diff --git a/packages/opencode/src/config/config.ts b/packages/opencode/src/config/config.ts
index acce3b61b..b0ba6fa47 100644
--- a/packages/opencode/src/config/config.ts
+++ b/packages/opencode/src/config/config.ts
@@ -144,6 +144,7 @@ export namespace Config {
.object({
model: z.string().optional(),
temperature: z.number().optional(),
+ top_p: z.number().optional(),
prompt: z.string().optional(),
tools: z.record(z.string(), z.boolean()).optional(),
disable: z.boolean().optional(),
diff --git a/packages/opencode/src/provider/transform.ts b/packages/opencode/src/provider/transform.ts
index 844fccbb2..13257b18a 100644
--- a/packages/opencode/src/provider/transform.ts
+++ b/packages/opencode/src/provider/transform.ts
@@ -50,4 +50,9 @@ export namespace ProviderTransform {
if (modelID.toLowerCase().includes("qwen")) return 0.55
return 0
}
+
+ export function topP(_providerID: string, modelID: string) {
+ if (modelID.toLowerCase().includes("qwen")) return 1
+ return undefined
+ }
}
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index 401645fa0..d0685daee 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -847,6 +847,7 @@ export namespace Session {
temperature: model.info.temperature
? (mode.temperature ?? ProviderTransform.temperature(input.providerID, input.modelID))
: undefined,
+ topP: mode.topP ?? ProviderTransform.topP(input.providerID, input.modelID),
tools: model.info.tool_call === false ? undefined : tools,
model: wrapLanguageModel({
model: model.language,
diff --git a/packages/opencode/src/session/mode.ts b/packages/opencode/src/session/mode.ts
index 65a1f277f..baf2ba242 100644
--- a/packages/opencode/src/session/mode.ts
+++ b/packages/opencode/src/session/mode.ts
@@ -8,6 +8,7 @@ export namespace Mode {
.object({
name: z.string(),
temperature: z.number().optional(),
+ topP: z.number().optional(),
model: z
.object({
modelID: z.string(),
@@ -51,7 +52,8 @@ export namespace Mode {
item.name = key
if (value.model) item.model = Provider.parseModel(value.model)
if (value.prompt) item.prompt = value.prompt
- if (value.temperature) item.temperature = value.temperature
+ if (value.temperature != undefined) item.temperature = value.temperature
+ if (value.top_p != undefined) item.topP = value.top_p
if (value.tools)
item.tools = {
...value.tools,
diff --git a/packages/web/astro.config.mjs b/packages/web/astro.config.mjs
index ca5d47955..2a978b282 100644
--- a/packages/web/astro.config.mjs
+++ b/packages/web/astro.config.mjs
@@ -84,6 +84,7 @@ export default defineConfig({
"docs/permissions",
"docs/mcp-servers",
"docs/formatters",
+ "docs/lsp",
],
},
],
diff --git a/packages/web/src/content/docs/docs/lsp-servers.mdx b/packages/web/src/content/docs/docs/lsp-servers.mdx
deleted file mode 100644
index b409c8bee..000000000
--- a/packages/web/src/content/docs/docs/lsp-servers.mdx
+++ /dev/null
@@ -1,34 +0,0 @@
----
-title: LSP servers
----
-
-opencode integrates with _Language Server Protocol_, or LSP to improve how the LLM interacts with your codebase.
-
-LSP servers for different languages give the LLM:
-
-- **Diagnostics**: These include things like errors and lint warnings. So the LLM can generate code that has fewer mistakes without having to run the code.
-- **Quick actions**: The LSP can allow the LLM to better navigate the codebase through features like _go-to-definition_ and _find references_.
-
-## Auto-detection
-
-By default, opencode will **automatically detect** the languages used in your project and add the right LSP servers.
-
-## Manual configuration
-
-You can also manually configure LSP servers by adding them under the `lsp` section in your opencode config.
-
-```json title="opencode.json"
-{
- "lsp": {
- "go": {
- "disabled": false,
- "command": "gopls"
- },
- "typescript": {
- "disabled": false,
- "command": "typescript-language-server",
- "args": ["--stdio"]
- }
- }
-}
-```