闽公网安备 35020302035485号
                
	
	

import ell
from dotenv import load_dotenv
from openai import OpenAI
import os
load_dotenv()
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
 # 堆代码 duidaima.com
@ell.simple(model="gpt-4o-mini", client=client)
def hello(world: str):
    """You are a helpful assistant""" # System prompt
    name = world.capitalize()
    return f"Say hello to {name}!" # User prompt
print(hello("sam altman"))
这是我得到的响应:


import ell
from dotenv import load_dotenv
from openai import OpenAI
import os
import requests
# Load environment variables
load_dotenv()
# Initialize ell logging store
ell.init(store='./logdir')
# Initialize OpenAI client
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# Define a tool to search on the internet using SERPAPI
@ell.tool()
def search_on_internet(query: str) -> str:
    search_url = "https://serpapi.com/search"
    params = {
        "q": query,
        "api_key": os.getenv("SERPAPI_API_KEY"),
    }
    response = requests.get(search_url, params=params)
    if response.status_code == 200:
        data = response.json()
        if "organic_results" in data:
            results = data["organic_results"][:3]
            text = results[0]["snippet"] if results else "No snippet available"
            final = {
                "results": results,
                "text": text
            }
            return f"Top 3 results: {final['results']}\n\nText: {final['text']}"
        else:
            return "No results found."
    else:
        return f"Error fetching search results: {response.status_code}"
# Define a complex task using ell and GPT model
@ell.complex(model="gpt-4o-mini", client=client, tools=[search_on_internet])
def article(country: str):
    """You are a helpful assistant"""  # System prompt
    name = country.capitalize()
    return f"Who is the president of {name} in 2024?"  # User prompt
# Test the function
print(article("united states"))
注意:如果使用 Ell 的最新版本,它现在可以工作了。import ell
from dotenv import load_dotenv
from openai import OpenAI
import os
import requests
# Load environment variables
load_dotenv()
# Initialize ell logging store
ell.init(store='./logdir')
# Initialize OpenAI client
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# Define a tool to search on the internet using SERPAPI
@ell.tool()
def search_on_internet(query: str) -> str:
    search_url = "https://serpapi.com/search"
    params = {
        "q": query,
        "api_key": os.getenv("SERPAPI_API_KEY"),
    }
    response = requests.get(search_url, params=params)
    if response.status_code == 200:
        data = response.json()
        if "organic_results" in data:
            results = data["organic_results"][:3]
            text = results[0]["snippet"] if results else "No snippet available"
            final = {
                "results": results,
                "text": text
            }
            return f"Top 3 results: {final['results']}\n\nText: {final['text']}"
        else:
            return "No results found."
    else:
        return f"Error fetching search results: {response.status_code}"
# Define a complex task using ell and GPT model
@ell.complex(model="gpt-4o-mini", client=client, tools=[search_on_internet])
def article(country: str):
    """You are a helpful assistant"""  # System prompt
    name = country.capitalize()
    return f"Who is the president of {name} in 2024?"  # User prompt
# Test the function
output = article("united states")
if output.tool_calls:
    print(output.tool_calls[0]())
多模态是头等公民import ell
from dotenv import load_dotenv
from openai import OpenAI
import os
from PIL import Image
# Load environment variables
load_dotenv()
# Initialize ell logging store
ell.init(store='./logdir')
# Initialize OpenAI client
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
@ell.simple(model="gpt-4o", client=client)
def describe_activity(image: Image.Image):
   return [
      ell.system("You are VisionGPT. Answer <5 words all lower case."),
      ell.user(["Describe the content of the image:", image])
   ]
# Load Image
img = Image.open("product_2.jpg")
# desc
print(describe_activity(img))
我得到的结果相当准确。你可以看看这里:
from pydantic import BaseModel, Field
import ell
from dotenv import load_dotenv
from openai import OpenAI
import os
# Load environment variables
load_dotenv()
# Initialize ell logging store
ell.init(store='./logdir')
# Initialize OpenAI client
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
class MovieReview(BaseModel):
    title: str = Field(description="The title of the movie")
    rating: int = Field(description="The rating of the movie out of 10")
    summary: str = Field(description="A brief summary of the movie")
@ell.complex(model="gpt-4o-2024-08-06", client=client, response_format=MovieReview)
def generate_movie_review(movie: str) -> MovieReview:
    """You are a movie review generator. Given the name of a movie, you need to return a structured review."""
    return f"generate a review for the movie {movie}"
然后我想到了构建一个合成数据生成器。生成器以公司名称为输入,并为该公司生成合成员工。相当酷吧?这只是众多潜在用例中的一个。你可以想象使用这种结构化输出生成功能构建一个金融分析师 Agent 或国际象棋 Agent。from pydantic import BaseModel, Field
import ell
from dotenv import load_dotenv
from openai import OpenAI
import os
# Load environment variables
load_dotenv()
# Initialize ell logging store
ell.init(store='./logdir')
# Initialize OpenAI client
client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
# Define your desired output structure
class Employee(BaseModel):
    name: str
    position: str
    department: str
    hire_date: str
    salary: int
@ell.complex(model="gpt-4o-2024-08-06", client=client, response_format=Employee, n=10)
def generate_synthetic_data(company: str) -> list[Employee]:
    """"""
    return f"generate employees for this company: {company}"
for employee in generate_synthetic_data("Nebius"):
    print(employee.parsed)
总结