community: Fix Predibase Integration for HuggingFace-hosted fine-tuned adapters (#25015)

Thank you for contributing to LangChain!

- [x] **PR title**: "package: description"
- Where "package" is whichever of langchain, community, core,
experimental, etc. is being modified. Use "docs: ..." for purely docs
changes, "templates: ..." for template changes, "infra: ..." for CI
changes.
  - Example: "community: add foobar LLM"


- [ ] **PR message**: ***Delete this entire checklist*** and replace
with
    - **Description:** a description of the change
    - **Issue:** the issue # it fixes, if applicable
    - **Dependencies:** any dependencies required for this change
- **Twitter handle:** if your PR gets announced, and you'd like a
mention, we'll gladly shout you out!


- [x] **Add tests and docs**: If you're adding a new integration, please
include
1. a test for the integration, preferably unit tests that do not rely on
network access,
2. an example notebook showing its use. It lives in
`docs/docs/integrations` directory.


- [ ] **Lint and test**: Run `make format`, `make lint` and `make test`
from the root of the package(s) you've modified. See contribution
guidelines for more: https://python.langchain.com/docs/contributing/

Additional guidelines:
- Make sure optional dependencies are imported within a function.
- Please do not add dependencies to pyproject.toml files (even optional
ones) unless they are required for unit tests.
- Most PRs should not touch more than one package.
- Changes should be backwards compatible.
- If you are adding something to community, do not re-import it in
langchain.

If no one reviews your PR within a few days, please @-mention one of
baskaryan, efriis, eyurtsev, ccurme, vbarda, hwchase17.
This commit is contained in:
Alex Sherstinsky 2024-08-03 14:05:43 -07:00 committed by GitHub
parent f5da0d6d87
commit 208042e0f2
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -49,9 +49,11 @@ class Predibase(LLM):
run_manager: Optional[CallbackManagerForLLMRun] = None,
**kwargs: Any,
) -> str:
options: Dict[str, Union[str, float]] = (
self.model_kwargs or self.default_options_for_generation
)
options: Dict[str, Union[str, float]] = {
**(self.model_kwargs or {}),
**self.default_options_for_generation,
**(kwargs or {}),
}
if self._is_deprecated_sdk_version():
try:
from predibase import PredibaseClient
@ -137,6 +139,9 @@ class Predibase(LLM):
if self.adapter_version:
# Since the adapter version is provided, query the Predibase repository.
pb_adapter_id: str = f"{self.adapter_id}/{self.adapter_version}"
options.pop(
"api_token", None
) # The "api_token" is not used for Predibase-hosted models.
try:
response = lorax_client.generate(
prompt=prompt,