-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathlangchain_quickstart.py
More file actions
47 lines (34 loc) · 1.34 KB
/
langchain_quickstart.py
File metadata and controls
47 lines (34 loc) · 1.34 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
"""Minimal LangChain quickstart for the forkit passport adapter."""
from __future__ import annotations
import sys
from pathlib import Path
sys.path.insert(0, str(Path(__file__).resolve().parent.parent))
from langchain_core.language_models.fake_chat_models import FakeListChatModel
from forkit.schemas import TaskType
from forkit.sdk import ForkitClient
from forkit_langchain import LangChainAdapter
def main() -> None:
client = ForkitClient(registry_root=".forkit_langchain_demo")
adapter = LangChainAdapter(client=client)
creator = {"name": "Hamza", "organization": "ForkIt"}
model_id = client.models.register(
name="langchain-demo-model",
version="1.0.0",
task_type=TaskType.TEXT_GENERATION,
architecture="transformer",
creator=creator,
)
bound = adapter.create_and_bind(
model=FakeListChatModel(responses=["hello from forkit"]),
create_kwargs={"name": "demo-agent"},
system_prompt="Be concise.",
version="1.0.0",
model_id=model_id,
creator=creator,
)
result = bound.invoke({"messages": [{"role": "user", "content": "say hi"}]})
print("passport_id:", bound.passport_id)
print("last_message:", result["messages"][-1].content)
print("runtime_counts:", bound.runtime_summary()["counts"])
if __name__ == "__main__":
main()