Fans Of 2-Minute Papers
Digging deeper into W&B Weave projects
Automated PDF summarization of arXiv papers with Claude 3.5 Sonnet and W&B Weave
Generating a Weights & Biases advertisement using diffusion
Building an AI teacher’s assistant using LlamaIndex and Groq
Compare LLM evaluations
Our newest Weave feature lets you drill down and compare LLM performance across candidate models
Build advanced RAG applications with efficiency, with full observability into what documents were retrieved, what functions were used, and what chat messages are given to the LLM.
Use our scorers, or define your own Evaluations score to create functions as complex or as simple as you need for your use case in evaluating different dimensions of your application performance.
Want to know the exact inputs and outputs of every call? Curious about exactly what was passed to the LLM, from raw content to JSON outputs? Traces captures all those details and presents that information in an easy-to-access UI for painless debugging.
Integrate W&B Weave to get started
- Log and debug language model inputs, outputs, and traces
- Build rigorous, apples-to-apples evaluations
- Organize all the information generated across the LLM workflow,
“We’re now driving 50 or 100 times more ML experiments versus what we were doing before.”
from openai import OpenAI
import weave
client = OpenAI()
weave.init('emoji-bot')
response = client.chat.completions.create(
model="gpt-4",
messages=[
{
"role": "system",
"content": "You are AGI. You will be provided with a message, and your task is to respond using emojis only."
},
{
"role": "user",
"content": "How are you?"
}
],
temperature=0.8,
max_tokens=64,
top_p=1
)
import weave
# use the anthropic library as usual
import os
from anthropic import Anthropic
weave.init("anthropic_project")
client = Anthropic(
api_key=os.environ.get("ANTHROPIC_API_KEY"),
)
message = client.messages.create(
max_tokens=1024,
messages=[
{
"role": "user",
"content": "Tell me a joke about a dog",
}
],
model="claude-3-opus-20240229",
)
print(message.content)
import cohere
import os
import weave
from weave.integrations.cohere import cohere_patcher
# we need to patch before we create the client
cohere_patcher.attempt_patch()
# Use the Cohere library as usual
co = cohere.Client(api_key=os.environ["COHERE_API_KEY"])
weave.init("cohere_project")
response = co.chat(
message="How is the weather in Boston?",
# perform web search before answering the question. You can also use your own custom connector.
connectors=[{"id": "web-search"}],
)
print(response.text)
import weave
weave.init("cheese_recommender")
# then use mistralai library as usual
import os
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage
api_key = os.environ["MISTRAL_API_KEY"]
model = "mistral-large-latest"
client = MistralClient(api_key=api_key)
messages = [
ChatMessage(role="user", content="What is the best French cheese?")
]
chat_response = client.chat(
model=model,
messages=messages,
)
import weave
from langchain_core.prompts import PromptTemplate
from langchain_openai import ChatOpenAI
# Initialize Weave with your project name
weave.init("langchain_demo")
llm = ChatOpenAI()
prompt = PromptTemplate.from_template("1 + {number} = ")
llm_chain = prompt | llm
output = llm_chain.invoke({"number": 2})
print(output)
import os
import dspy
import weave
os.environ["OPENAI_API_KEY"] = ""
weave.init(project_name="")
gpt3_turbo = dspy.OpenAI(model="gpt-3.5-turbo-1106", max_tokens=300)
dspy.configure(lm=gpt3_turbo)
classify = dspy.Predict("sentence -> sentiment")
classify(sentence="it's a charming and often affecting journey.")
import os
import openai
import weave
weave.init('together-weave')
system_content = "You are a travel agent. Be descriptive and helpful."
user_content = "Tell me about San Francisco"
client = openai.OpenAI(
api_key=os.environ.get("TOGETHER_API_KEY"),
base_url="https://api.together.xyz/v1",
)
chat_completion = client.chat.completions.create(
model="mistralai/Mixtral-8x7B-Instruct-v0.1",
messages=[
{"role": "system", "content": system_content},
{"role": "user", "content": user_content},
],
temperature=0.7,
max_tokens=1024,
)
response = chat_completion.choices[0].message.content
print("Together response:\n", response)
import os
import weave
from groq import Groq
weave.init(project_name="groq-project")
client = Groq(
api_key=os.environ.get("GROQ_API_KEY"),
)
chat_completion = client.chat.completions.create(
messages=[
{
"role": "user",
"content": "Explain the importance of fast language models",
}
],
model="llama3-8b-8192",
)
import litellm
import weave
weave.init("weave_litellm_integration")
openai_response = litellm.completion(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "Translate 'Hello, how are you?' to French"}],
max_tokens=1024
)
print(openai_response.choices[0].message.content)
claude_response = litellm.completion(
model="claude-3-5-sonnet-20240620",
messages=[{"role": "user", "content": "Translate 'Hello, how are you?' to French"}],
max_tokens=1024
)
print(claude_response.choices[0].message.content)