From 9c103a4b39d77e6febc208086847431973c9fe32 Mon Sep 17 00:00:00 2001
From: BetterAndBetterII <141388234+BetterAndBetterII@users.noreply.github.com>
Date: Wed, 7 Feb 2024 01:21:45 +0800
Subject: [PATCH] Fixing Dashscope qwen llm bug (#10471)

* Support Gemini "transport" configuration

Added Gemini transportation method configuration support.

* Sync updates in multi_modal_llms\gemini

* Updated Dashscope qwen llm defaults

Setting qwen default num_outputs and temperature

* cr

---------

Co-authored-by: Haotian Zhang <socool.king@gmail.com>
---
 llama_index/llms/dashscope.py | 12 ++++++++----
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/llama_index/llms/dashscope.py b/llama_index/llms/dashscope.py
index 8481a29de6..60321a4068 100644
--- a/llama_index/llms/dashscope.py
+++ b/llama_index/llms/dashscope.py
@@ -4,6 +4,7 @@ from typing import Any, Dict, List, Optional, Sequence, Tuple
 
 from llama_index.bridge.pydantic import Field
 from llama_index.callbacks import CallbackManager
+from llama_index.constants import DEFAULT_NUM_OUTPUTS, DEFAULT_TEMPERATURE
 from llama_index.core.llms.types import (
     ChatMessage,
     ChatResponse,
@@ -92,6 +93,7 @@ class DashScope(CustomLLM):
     )
     max_tokens: Optional[int] = Field(
         description="The maximum number of tokens to generate.",
+        default=DEFAULT_NUM_OUTPUTS,
         gt=0,
     )
     incremental_output: Optional[bool] = Field(
@@ -115,7 +117,7 @@ class DashScope(CustomLLM):
     )
     temperature: Optional[float] = Field(
         description="The temperature to use during generation.",
-        default=None,
+        default=DEFAULT_TEMPERATURE,
         gte=0.0,
         lte=2.0,
     )
@@ -134,7 +136,6 @@ class DashScope(CustomLLM):
                                                              repetition.",
         default=None,
     )
-
     api_key: str = Field(
         default=None, description="The DashScope API key.", exclude=True
     )
@@ -142,11 +143,11 @@ class DashScope(CustomLLM):
     def __init__(
         self,
         model_name: Optional[str] = DashScopeGenerationModels.QWEN_MAX,
-        max_tokens: Optional[int] = None,
+        max_tokens: Optional[int] = DEFAULT_NUM_OUTPUTS,
         incremental_output: Optional[int] = True,
         enable_search: Optional[bool] = False,
         stop: Optional[Any] = None,
-        temperature: Optional[float] = None,
+        temperature: Optional[float] = DEFAULT_TEMPERATURE,
         top_k: Optional[int] = None,
         top_p: Optional[float] = None,
         seed: Optional[int] = 1234,
@@ -175,6 +176,9 @@ class DashScope(CustomLLM):
 
     @property
     def metadata(self) -> LLMMetadata:
+        DASHSCOPE_MODEL_META[self.model_name]["num_output"] = (
+            self.max_tokens or DASHSCOPE_MODEL_META[self.model_name]["num_output"]
+        )
         return LLMMetadata(
             model_name=self.model_name, **DASHSCOPE_MODEL_META[self.model_name]
         )
-- 
GitLab