mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-08 14:31:55 +00:00
Adding Perplexity
extra and deprecating the community version of ChatPerplexity
(#30649)
Plus, some accompanying docs updates Some compelling usage: ```py from langchain_perplexity import ChatPerplexity chat = ChatPerplexity(model="llama-3.1-sonar-small-128k-online") response = chat.invoke( "What were the most significant newsworthy events that occurred in the US recently?", extra_body={"search_recency_filter": "week"}, ) print(response.content) # > Here are the top significant newsworthy events in the US recently: ... ``` Also, some confirmation of structured outputs: ```py from langchain_perplexity import ChatPerplexity from pydantic import BaseModel class AnswerFormat(BaseModel): first_name: str last_name: str year_of_birth: int num_seasons_in_nba: int messages = [ {"role": "system", "content": "Be precise and concise."}, { "role": "user", "content": ( "Tell me about Michael Jordan. " "Please output a JSON object containing the following fields: " "first_name, last_name, year_of_birth, num_seasons_in_nba. " ), }, ] llm = ChatPerplexity(model="llama-3.1-sonar-small-128k-online") structured_llm = llm.with_structured_output(AnswerFormat) response = structured_llm.invoke(messages) print(repr(response)) #> AnswerFormat(first_name='Michael', last_name='Jordan', year_of_birth=1963, num_seasons_in_nba=15) ```
This commit is contained in:
@@ -18,6 +18,7 @@ from typing import (
|
||||
Union,
|
||||
)
|
||||
|
||||
from langchain_core._api.deprecation import deprecated
|
||||
from langchain_core.callbacks import CallbackManagerForLLMRun
|
||||
from langchain_core.language_models import LanguageModelInput
|
||||
from langchain_core.language_models.chat_models import (
|
||||
@@ -71,6 +72,11 @@ def _create_usage_metadata(token_usage: dict) -> UsageMetadata:
|
||||
)
|
||||
|
||||
|
||||
@deprecated(
|
||||
since="0.3.21",
|
||||
removal="1.0",
|
||||
alternative_import="langchain_perplexity.ChatPerplexity",
|
||||
)
|
||||
class ChatPerplexity(BaseChatModel):
|
||||
"""`Perplexity AI` Chat models API.
|
||||
|
||||
|
@@ -38,6 +38,7 @@ groq = ["langchain-groq"]
|
||||
aws = ["langchain-aws"]
|
||||
deepseek = ["langchain-deepseek"]
|
||||
xai = ["langchain-xai"]
|
||||
perplexity = ["langchain-perplexity"]
|
||||
|
||||
[project.urls]
|
||||
"Source Code" = "https://github.com/langchain-ai/langchain/tree/master/libs/langchain"
|
||||
|
23
libs/langchain/uv.lock
generated
23
libs/langchain/uv.lock
generated
@@ -1,4 +1,5 @@
|
||||
version = 1
|
||||
revision = 1
|
||||
requires-python = ">=3.9, <4.0"
|
||||
resolution-markers = [
|
||||
"python_full_version >= '3.13' and platform_python_implementation == 'PyPy'",
|
||||
@@ -2400,6 +2401,9 @@ ollama = [
|
||||
openai = [
|
||||
{ name = "langchain-openai" },
|
||||
]
|
||||
perplexity = [
|
||||
{ name = "langchain-perplexity" },
|
||||
]
|
||||
together = [
|
||||
{ name = "langchain-together" },
|
||||
]
|
||||
@@ -2493,6 +2497,7 @@ requires-dist = [
|
||||
{ name = "langchain-mistralai", marker = "extra == 'mistralai'" },
|
||||
{ name = "langchain-ollama", marker = "extra == 'ollama'" },
|
||||
{ name = "langchain-openai", marker = "extra == 'openai'", editable = "../partners/openai" },
|
||||
{ name = "langchain-perplexity", marker = "extra == 'perplexity'" },
|
||||
{ name = "langchain-text-splitters", editable = "../text-splitters" },
|
||||
{ name = "langchain-together", marker = "extra == 'together'" },
|
||||
{ name = "langchain-xai", marker = "extra == 'xai'" },
|
||||
@@ -2502,6 +2507,7 @@ requires-dist = [
|
||||
{ name = "requests", specifier = ">=2,<3" },
|
||||
{ name = "sqlalchemy", specifier = ">=1.4,<3" },
|
||||
]
|
||||
provides-extras = ["community", "anthropic", "openai", "azure-ai", "cohere", "google-vertexai", "google-genai", "fireworks", "ollama", "together", "mistralai", "huggingface", "groq", "aws", "deepseek", "xai", "perplexity"]
|
||||
|
||||
[package.metadata.requires-dev]
|
||||
codespell = [{ name = "codespell", specifier = ">=2.2.0,<3.0.0" }]
|
||||
@@ -2659,7 +2665,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain-core"
|
||||
version = "0.3.49"
|
||||
version = "0.3.50"
|
||||
source = { editable = "../core" }
|
||||
dependencies = [
|
||||
{ name = "jsonpatch" },
|
||||
@@ -2836,7 +2842,7 @@ wheels = [
|
||||
|
||||
[[package]]
|
||||
name = "langchain-openai"
|
||||
version = "0.3.11"
|
||||
version = "0.3.12"
|
||||
source = { editable = "../partners/openai" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
@@ -2883,6 +2889,19 @@ typing = [
|
||||
{ name = "types-tqdm", specifier = ">=4.66.0.5,<5.0.0.0" },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "langchain-perplexity"
|
||||
version = "0.1.0"
|
||||
source = { registry = "https://pypi.org/simple" }
|
||||
dependencies = [
|
||||
{ name = "langchain-core" },
|
||||
{ name = "openai" },
|
||||
]
|
||||
sdist = { url = "https://files.pythonhosted.org/packages/fb/66/ccdce60458111a1118d8107c106c65fa40e93fe358c61f9cb2b87b9a5eca/langchain_perplexity-0.1.0.tar.gz", hash = "sha256:947648a223cf1cbbc5b26efcf29d5483443be222fd803da1cff9c2923d6063d6", size = 10069 }
|
||||
wheels = [
|
||||
{ url = "https://files.pythonhosted.org/packages/31/82/d6bad72aed8dde4c3cdba5e51554f8978fc5d1ec43ba2f23611474673079/langchain_perplexity-0.1.0-py3-none-any.whl", hash = "sha256:7e18fa4c28e25240a9e57c613bf75737d2767d63dc92979de2db51f4e40127e0", size = 8669 },
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "langchain-tests"
|
||||
version = "0.3.17"
|
||||
|
@@ -567,4 +567,7 @@ packages:
|
||||
repo: vectara/langchain-vectara
|
||||
- name: langchain-oxylabs
|
||||
path: .
|
||||
repo: oxylabs/langchain-oxylabs
|
||||
repo: oxylabs/langchain-oxylabs
|
||||
- name: langchain-perplexity
|
||||
path: libs/partners/perplexity
|
||||
repo: langchain-ai/langchain
|
||||
|
Reference in New Issue
Block a user